OPM Data Separation Analysis

Christopher Boomhower1, Stacey Fabricant2, Alex Frye1, David Mumford2, Michael Smith1, Lindsay Vitovsky1

1 Southern Methodist University, Dallas, TX, US 2 Penn Mutual Life Insurance Co, Horsham PA </i></b>

Introduction

background text...

our intent is to: 1)..2)...3)........

In [ ]:
 

Data Understanding

Data Source Background Text & citation links

Dataset Attribute Descriptions

Load the Data

To begin our analysis, we need to load the data from our 89 source .txt files. Data is separated into two separate groups of files; Separation and Non-Separation, thus data is loaded in two separate phases, then unioned together. Once data is loaded, Steps taken to remove non-US observations or those with no specified occupation, no specified salary, or no specified length of service level. Of a total 8,423,336 observations, we end with 8,232,375 after removal of these observations.

In [1]:
## Import libraries
import pickle
import os
import psutil
import glob
import pandas as pd
import numpy as np
from IPython.display import display
import matplotlib
import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap
import seaborn as sns
import requests
import json
import missingno as msno
import prettytable
import math
from sklearn.preprocessing import MinMaxScaler, StandardScaler, label_binarize
from sklearn.multiclass import OneVsRestClassifier
from sklearn.utils import class_weight
from sklearn.decomposition import PCA
from sklearn.pipeline import Pipeline
from sklearn.model_selection import StratifiedKFold
from sklearn.cross_validation import cross_val_score
from sklearn.metrics import roc_curve, auc
from sklearn.metrics import roc_auc_score
from scipy import interp
from sklearn.metrics import confusion_matrix
from sklearn.ensemble  import RandomForestClassifier
from sklearn.neighbors import KNeighborsClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.cross_validation import ShuffleSplit
from sklearn.metrics import log_loss
from sklearn.metrics import roc_auc_score
from datetime import datetime
from dateutil.parser import parse
from itertools import cycle
from sklearn import metrics as mt
from sklearn.feature_selection import chi2
import itertools

#Need to make sure you install the rpy2 package via following command in the Putty genuse41 console:
#python3 /usr/bin/pip install --user rpy2
#NOTE: If the above pip install does not work, try the following instead:
#python3 /usr/local/es7/lib/python3.5/site-packages/pip install --user rpy2
%load_ext rpy2.ipython


## Library Options

pd.options.mode.chained_assignment = None

pd.set_option('display.max_rows', 500)
pd.set_option('display.max_columns', 500)
pd.set_option('display.width', 1000)
/usr/local/es7/lib/python3.5/site-packages/sklearn/cross_validation.py:44: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20.
  "This module will be removed in 0.20.", DeprecationWarning)
In [2]:
## Pre-defined Functions for use later
def pickleObject(objectname, filename, filepath = "PickleJar/"):
    fullpicklepath = "{0}{1}.pkl".format(filepath, filename)
    # Create a variable to pickle and open it in write mode
    picklefile = open(fullpicklepath, 'wb')
    pickle.dump(objectname, picklefile)
    picklefile.close()
    
def unpickleObject(filename, filepath = "PickleJar/"):
    fullunpicklepath = "{0}{1}.pkl".format(filepath, filename)
    # Create an variable to pickle and open it in write mode
    unpicklefile = open(fullunpicklepath, 'rb')
    unpickleObject = pickle.load(unpicklefile)
    unpicklefile.close()

    return unpickleObject
    
def clear_display():
    from IPython.display import clear_output
    
## Pre-defined variables for use later
dataOPMPath = "dataOPM"
dataEMPPath = "dataEMP"
PickleJarPath = "PickleJar"
In [3]:
%%time

## Load OPMSeparation Files

OPMDataFiles = glob.glob(os.path.join(dataOPMPath, "*.txt"))

for i in range(0,len(OPMDataFiles)):
    OPMDataFiles[i] = OPMDataFiles[i].replace("\\","/")

OPMDataList = []

for i,j in zip(OPMDataFiles,range(0,len(OPMDataFiles))):
    OPMDataList.append(pd.read_csv(i, dtype = 'str'))
    display(OPMDataList[j].head())

## Load the SEPDATA_FY2015 file into it's own object
indexes = [i for i,x in enumerate(OPMDataFiles) if x == 'dataOPM/SEPDATA_FY2015.txt']
OPMDataOrig = OPMDataList[indexes[0]]
AGELVL AGELVLT
0 A Less than 20
1 B 20-24
2 C 25-29
3 D 30-34
4 E 35-39
AGYTYP AGYTYPT AGY AGYT AGYSUB AGYSUBT
0 1 Cabinet Level Agencies AF AF-DEPARTMENT OF THE AIR FORCE AF** AF**-INVALID
1 1 Cabinet Level Agencies AF AF-DEPARTMENT OF THE AIR FORCE AF02 AF02-AIR FORCE INSPECTION AGENCY (FO)
2 1 Cabinet Level Agencies AF AF-DEPARTMENT OF THE AIR FORCE AF03 AF03-AIR FORCE OPERATIONAL TEST AND EVALUATION...
3 1 Cabinet Level Agencies AF AF-DEPARTMENT OF THE AIR FORCE AF06 AF06-AIR FORCE AUDIT AGENCY
4 1 Cabinet Level Agencies AF AF-DEPARTMENT OF THE AIR FORCE AF07 AF07-AIR FORCE OFFICE OF SPECIAL INVESTIGATIONS
QTR QTRT EFDATE EFDATET
0 1 OCT-DEC 2014 201410 OCT 2014
1 1 OCT-DEC 2014 201411 NOV 2014
2 1 OCT-DEC 2014 201412 DEC 2014
3 2 JAN-MAR 2015 201501 JAN 2015
4 2 JAN-MAR 2015 201502 FEB 2015
GENDER GENDERT
0 F Female
1 M Male
2 Z Unspecified
GSEGRD
0 **
1 01
2 02
3 03
4 04
LOCTYP LOCTYPT LOC LOCT
0 1 United States 01 01-ALABAMA
1 1 United States 02 02-ALASKA
2 1 United States 04 04-ARIZONA
3 1 United States 05 05-ARKANSAS
4 1 United States 06 06-CALIFORNIA
LOSLVL LOSLVLT
0 A Less than 1 year
1 B 1 - 2 years
2 C 3 - 4 years
3 D 5 - 9 years
4 E 10 - 14 years
OCCTYP OCCTYPT OCCFAM OCCFAMT OCC OCCT
0 1 White Collar 00 00xx-MISCELLANEOUS OCCUPATIONS 0006 0006-CORRECTIONAL INSTITUTION ADMINISTRATION
1 1 White Collar 00 00xx-MISCELLANEOUS OCCUPATIONS 0007 0007-CORRECTIONAL OFFICER
2 1 White Collar 00 00xx-MISCELLANEOUS OCCUPATIONS 0017 0017-EXPLOSIVES SAFETY
3 1 White Collar 00 00xx-MISCELLANEOUS OCCUPATIONS 0018 0018-SAFETY AND OCCUPATIONAL HEALTH MANAGEMENT
4 1 White Collar 00 00xx-MISCELLANEOUS OCCUPATIONS 0019 0019-SAFETY TECHNICIAN
PATCO PATCOT
0 1 Professional
1 2 Administrative
2 3 Technical
3 4 Clerical
4 5 Other White Collar
PPTYP PPTYPT PPGROUP PPGROUPT PAYPLAN PAYPLANT PPGRD
0 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans GL GL-GS EMPLOYEES IN GRADES 3 THROUGH 10 PAID A ... GL-03
1 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans GL GL-GS EMPLOYEES IN GRADES 3 THROUGH 10 PAID A ... GL-04
2 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans GL GL-GS EMPLOYEES IN GRADES 3 THROUGH 10 PAID A ... GL-05
3 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans GL GL-GS EMPLOYEES IN GRADES 3 THROUGH 10 PAID A ... GL-06
4 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans GL GL-GS EMPLOYEES IN GRADES 3 THROUGH 10 PAID A ... GL-07
SALLVL SALLVLT
0 A Less than $20,000
1 B $20,000 - $29,999
2 C $30,000 - $39,999
3 D $40,000 - $49,999
4 E $50,000 - $59,999
SEP SEPT
0 SA Transfer Out - Individual Transfer
1 SB Transfer Out - Mass Transfer
2 SC Quit
3 SD Retirement - Voluntary
4 SE Retirement - Early Out
TOATYP TOATYPT TOA TOAT
0 1 Permanent 10 10-Competitive Service - Career
1 1 Permanent 15 15-Competitive Service - Career-Conditional
2 1 Permanent 30 30-Excepted Service - Schedule A
3 1 Permanent 32 32-Excepted Service - Schedule B
4 1 Permanent 34 34-Excepted Service - Schedule C
WSTYP WSTYPT WORKSCH WORKSCHT
0 1 Full-time B B-Full-time Nonseasonal Baylor Plan
1 1 Full-time F F-Full-time Nonseasonal
2 1 Full-time G G-Full-time Seasonal
3 1 Full-time H H-Full-time On-call
4 2 Not Full-time I I-Intermittent Nonseasonal
AGYSUB SEP EFDATE AGELVL GENDER GSEGRD LOSLVL LOC OCC PATCO PPGRD SALLVL TOA WORKSCH COUNT SALARY LOS
0 AA00 SC 201507 C M 11 A 11 0905 1 GS-11 F 40 F 1 063722 00.8
1 AA00 SD 201509 K M NaN D 11 0301 2 EX-02 Z 46 F 1 NaN 08.1
2 AA00 SC 201506 D F 15 C 11 0905 1 GS-15 L 30 F 1 126245 04.8
3 AF** SA 201503 H M 11 C 48 2210 2 GS-11 F 10 F 1 066585 04.9
4 AF02 SD 201506 I M 15 J 35 0301 2 GS-15 O 10 F 1 156737 39.8
CPU times: user 365 ms, sys: 55.8 ms, total: 421 ms
Wall time: 424 ms
In [4]:
%%time

#print(OPMDataFiles)

print(len(OPMDataOrig))

##### Merge / Modify Codes / Aggregate Attributes to be more descriptive per the metadata files

OPMDataMerged = OPMDataOrig.copy()

##AGYSUB - AGYTYP, AGY
indexes = [i for i,x in enumerate(OPMDataFiles) if x == 'dataOPM/DTagy.txt']
OPMDataMerged = OPMDataMerged.merge(OPMDataList[indexes[0]], on = 'AGYSUB', how = 'left')

##EFDate - quarter, month
indexes = [i for i,x in enumerate(OPMDataFiles) if x == 'dataOPM/DTefdate.txt']
OPMDataMerged = OPMDataMerged.merge(OPMDataList[indexes[0]], on = 'EFDATE', how = 'left')

##AGELVL - AGELVLT
indexes = [i for i,x in enumerate(OPMDataFiles) if x == 'dataOPM/DTagelvl.txt']
OPMDataMerged = OPMDataMerged.merge(OPMDataList[indexes[0]], on = 'AGELVL', how = 'left')

##LOSLVL - LOSLVLT
indexes = [i for i,x in enumerate(OPMDataFiles) if x == 'dataOPM/DTloslvl.txt']
OPMDataMerged = OPMDataMerged.merge(OPMDataList[indexes[0]], on = 'LOSLVL', how = 'left')

##LOC - LocTypeT, LocT
indexes = [i for i,x in enumerate(OPMDataFiles) if x == 'dataOPM/DTloc.txt']
OPMDataMerged = OPMDataMerged.merge(OPMDataList[indexes[0]], on = 'LOC', how = 'left')

##OCC - OCCTYPT, OCCFAM
indexes = [i for i,x in enumerate(OPMDataFiles) if x == 'dataOPM/DTocc.txt']
OPMDataMerged = OPMDataMerged.merge(OPMDataList[indexes[0]], on = 'OCC', how = 'left')

##PATCO - PATCOT
indexes = [i for i,x in enumerate(OPMDataFiles) if x == 'dataOPM/DTpatco.txt']
OPMDataMerged = OPMDataMerged.merge(OPMDataList[indexes[0]], on = 'PATCO', how = 'left')

##PPGRD - PayPlan, PPGroup, PPTYP
indexes = [i for i,x in enumerate(OPMDataFiles) if x == 'dataOPM/DTppgrd.txt']
OPMDataMerged = OPMDataMerged.merge(OPMDataList[indexes[0]], on = 'PPGRD', how = 'left')

##SALLVL - SALLVLT
indexes = [i for i,x in enumerate(OPMDataFiles) if x == 'dataOPM/DTsallvl.txt']
OPMDataMerged = OPMDataMerged.merge(OPMDataList[indexes[0]], on = 'SALLVL', how = 'left')

##TOA - TOATYP
indexes = [i for i,x in enumerate(OPMDataFiles) if x == 'dataOPM/DTtoa.txt']
OPMDataMerged = OPMDataMerged.merge(OPMDataList[indexes[0]], on = 'TOA', how = 'left')

##WORKSCH - WSTYPT
indexes = [i for i,x in enumerate(OPMDataFiles) if x == 'dataOPM/DTwrksch.txt']
OPMDataMerged = OPMDataMerged.merge(OPMDataList[indexes[0]], on = 'WORKSCH', how = 'left')


## Modify Data Types for numeric objects
OPMDataMerged["SALARY"] = OPMDataMerged["SALARY"].apply(pd.to_numeric)
OPMDataMerged["COUNT"]  = OPMDataMerged["COUNT"].apply(pd.to_numeric)
OPMDataMerged["LOS"]    = OPMDataMerged["LOS"].apply(pd.to_numeric)

print("Original SEP data size of: "+str(len(OPMDataMerged)))
print("Removing "+str(len(OPMDataMerged[OPMDataMerged["LOCTYP"] != "1"]))+" Non-US observations.")

## Remove Non-US Data
OPMDataMerged = OPMDataMerged[OPMDataMerged["LOCTYP"] == "1"]

print("Removing "+str(len(OPMDataMerged[OPMDataMerged["OCCTYP"] == "3"]))+" observations with no specified Occupation.")

   ## Remove Observations with no specified occupation
OPMDataMerged = OPMDataMerged[OPMDataMerged["OCCTYP"] != "3"]

print("Removing "+str(len(OPMDataMerged[OPMDataMerged["SALLVL"] == "Z"]))+" observations with no specified Salary.")

   ## Remove Observations with no specified salary
OPMDataMerged = OPMDataMerged[OPMDataMerged["SALLVL"] != "Z"]

print("Removing "+str(len(OPMDataMerged[OPMDataMerged["LOSLVL"] == "Z"]))+" observations with no specified Length of Service.")

   ## Remove Observations with no specified LOSLVL
OPMDataMerged = OPMDataMerged[OPMDataMerged["LOSLVL"] != "Z"]

print("Removing "+str(len(OPMDataMerged[OPMDataMerged["AGELVL"] == "A"]))+" observations of Age Level A")

## Remove Observations from Age Level A (less than 20 years old)
OPMDataMerged = OPMDataMerged[OPMDataMerged["AGELVL"] != "A"]

print("Removing "+str(len(OPMDataMerged[OPMDataMerged["AGELVL"] == "Z"]))+" observations with no specified Age Level.")

   ## Remove Observations with no specified Age Level
OPMDataMerged = OPMDataMerged[OPMDataMerged["AGELVL"] != "Z"]

    ## Fix differences in spaces on WORKSCHT Column
OPMDataMerged["WORKSCHT"] = np.where(OPMDataMerged["WORKSCHT"].str[0]=="F", 'Full-time Nonseasonal',
                                np.where(OPMDataMerged["WORKSCHT"].str[0]=="I", 'Intermittent Nonseasonal',
                                         np.where(OPMDataMerged["WORKSCHT"].str[0]=="P", 'Part-time Nonseasonal',
                                                  np.where(OPMDataMerged["WORKSCHT"].str[0]=="G", 'Full-time Seasonal',
                                                        np.where(OPMDataMerged["WORKSCHT"].str[0]=="J", 'Intermittent Seasonal',
                                                                np.where(OPMDataMerged["WORKSCHT"].str[0]=="Q", 'Part-time Seasonal',
                                                                        np.where(OPMDataMerged["WORKSCHT"].str[0]=="T", 'Part-time Job Sharer Seasonal',
                                                                                np.where(OPMDataMerged["WORKSCHT"].str[0]=="S", 'Part-time Job Sharer Nonseasonal',
                                                                                        np.where(OPMDataMerged["WORKSCHT"].str[0]=="B", 'Full-time Nonseasonal Baylor Plan',
                                                                                                'NO WORK SCHEDULE REPORTED' ### ELSE case represents Night
                                                                                                 )
                                                                                         )
                                                                                 )
                                                                         )
                                                                 )
                                                          )
                                                 )
                                        )
                               )    

display(OPMDataMerged.head())
print("New SEP data size of: "+str(len(OPMDataMerged)))
display(OPMDataMerged.describe().transpose())
#del OPMDataList,OPMDataFiles
226357
Original SEP data size of: 226357
Removing 8021 Non-US observations.
Removing 55 observations with no specified Occupation.
Removing 1426 observations with no specified Salary.
Removing 3 observations with no specified Length of Service.
Removing 2570 observations of Age Level A
Removing 0 observations with no specified Age Level.
AGYSUB SEP EFDATE AGELVL GENDER GSEGRD LOSLVL LOC OCC PATCO PPGRD SALLVL TOA WORKSCH COUNT SALARY LOS AGYTYP AGYTYPT AGY AGYT AGYSUBT QTR QTRT EFDATET AGELVLT LOSLVLT LOCTYP LOCTYPT LOCT OCCTYP OCCTYPT OCCFAM OCCFAMT OCCT PATCOT PPTYP PPTYPT PPGROUP PPGROUPT PAYPLAN PAYPLANT SALLVLT TOATYP TOATYPT TOAT WSTYP WSTYPT WORKSCHT
0 AA00 SC 201507 C M 11 A 11 0905 1 GS-11 F 40 F 1 63722.0 0.8 4 Small Independent Agencies (less than 100 empl... AA AA-ADMINISTRATIVE CONFERENCE OF THE UNITED STATES AA00-ADMINISTRATIVE CONFERENCE OF THE UNITED S... 4 JUL-SEP 2015 JUL 2015 25-29 Less than 1 year 1 United States 11-DISTRICT OF COLUMBIA 1 White Collar 09 09xx-LEGAL AND KINDRED 0905-GENERAL ATTORNEY Professional 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans GS GS-GENERAL SCHEDULE $60,000 - $69,999 2 Non-permanent 40-Excepted Service - Schedule A 1 Full-time Full-time Nonseasonal
2 AA00 SC 201506 D F 15 C 11 0905 1 GS-15 L 30 F 1 126245.0 4.8 4 Small Independent Agencies (less than 100 empl... AA AA-ADMINISTRATIVE CONFERENCE OF THE UNITED STATES AA00-ADMINISTRATIVE CONFERENCE OF THE UNITED S... 3 APR-JUN 2015 JUN 2015 30-34 3 - 4 years 1 United States 11-DISTRICT OF COLUMBIA 1 White Collar 09 09xx-LEGAL AND KINDRED 0905-GENERAL ATTORNEY Professional 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans GS GS-GENERAL SCHEDULE $120,000 - $129,999 1 Permanent 30-Excepted Service - Schedule A 1 Full-time Full-time Nonseasonal
3 AF** SA 201503 H M 11 C 48 2210 2 GS-11 F 10 F 1 66585.0 4.9 1 Cabinet Level Agencies AF AF-DEPARTMENT OF THE AIR FORCE AF**-INVALID 2 JAN-MAR 2015 MAR 2015 50-54 3 - 4 years 1 United States 48-TEXAS 1 White Collar 22 22xx-INFORMATION TECHNOLOGY 2210-INFORMATION TECHNOLOGY MANAGEMENT Administrative 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans GS GS-GENERAL SCHEDULE $60,000 - $69,999 1 Permanent 10-Competitive Service - Career 1 Full-time Full-time Nonseasonal
4 AF02 SD 201506 I M 15 J 35 0301 2 GS-15 O 10 F 1 156737.0 39.8 1 Cabinet Level Agencies AF AF-DEPARTMENT OF THE AIR FORCE AF02-AIR FORCE INSPECTION AGENCY (FO) 3 APR-JUN 2015 JUN 2015 55-59 35 years or more 1 United States 35-NEW MEXICO 1 White Collar 03 03xx-GENERAL ADMIN, CLERICAL, & OFFICE SVCS 0301-MISCELLANEOUS ADMINISTRATION AND PROGRAM Administrative 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans GS GS-GENERAL SCHEDULE $150,000 - $159,999 1 Permanent 10-Competitive Service - Career 1 Full-time Full-time Nonseasonal
5 AF03 SC 201509 H M 13 B 06 0301 2 GS-13 I 15 F 1 92973.0 1.0 1 Cabinet Level Agencies AF AF-DEPARTMENT OF THE AIR FORCE AF03-AIR FORCE OPERATIONAL TEST AND EVALUATION... 4 JUL-SEP 2015 SEP 2015 50-54 1 - 2 years 1 United States 06-CALIFORNIA 1 White Collar 03 03xx-GENERAL ADMIN, CLERICAL, & OFFICE SVCS 0301-MISCELLANEOUS ADMINISTRATION AND PROGRAM Administrative 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans GS GS-GENERAL SCHEDULE $90,000 - $99,999 1 Permanent 15-Competitive Service - Career-Conditional 1 Full-time Full-time Nonseasonal
New SEP data size of: 214282
count mean std min 25% 50% 75% max
COUNT 214282.0 1.000000 0.000000 1.0 1.0 1.0 1.0 1.0
SALARY 214282.0 66479.453855 39471.623281 3913.0 35830.0 54424.0 86910.0 393699.0
LOS 214282.0 11.708865 12.631714 0.0 1.3 6.2 20.4 71.5
CPU times: user 14.8 s, sys: 164 ms, total: 15 s
Wall time: 14.9 s
In [5]:
%%time

if os.path.isfile(PickleJarPath+"/EMPDataOrig4Q.pkl"):
    print("Found the File! Loading Pickle Now!")
    EMPDataOrig4Q = unpickleObject("EMPDataOrig4Q")
else:
    ## Load EMPData Files

    indexes = []
    EMPDataFiles = []
    EMPDataList = []
    EMPDataOrig = []

    for i,qtr in enumerate(["Q1", "Q2", "Q3", "Q4"]): 
        EMPDataFiles.append(glob.glob(os.path.join(dataEMPPath, qtr + "/*.txt")))

        for j in range(0,len(EMPDataFiles[i])):
            EMPDataFiles[i][j] = EMPDataFiles[i][j].replace("\\","/")

        EMPDataList.append([])

        for j,file in enumerate(EMPDataFiles[i]):
            EMPDataList[i].append(pd.read_csv(file, dtype = 'str'))
            if i == 0:
                display(EMPDataList[i][j].head())

        ## Load the FactData files into it's own object
        indexes.append([])
            ##[qtr][fileindex from EMPDataList]
        indexes[i]=[j for j,x in enumerate(EMPDataFiles[i]) if dataEMPPath + '/' + qtr + '/FACTDATA' in x]   

        EMPDataOrig.append([])

        EMPDataOrig[i] = pd.concat([EMPDataList[i][indexes[i][j]] for j in range(0,len(indexes[i]))]) 
        EMPDataOrig[i]["QTR"] = str(i+1)

            ## modify data type for numerics
        EMPDataOrig[i]["SALARY"] = EMPDataOrig[i]["SALARY"].str.replace(',', '').str.replace('$', '').str.replace(' ', '').apply(pd.to_numeric)
      
        ## Load Metadata
        ##AGYSUB - AGYTYP, AGY
        ind2 = [i for i,x in enumerate(EMPDataFiles[i]) if x == dataEMPPath + '/' + qtr + '/DTagy.txt']
        EMPDataOrig[i] = EMPDataOrig[i].merge(EMPDataList[i][ind2[0]], on = 'AGYSUB', how = 'left')

        ##AGELVL - AGELVLT
        ind2 = [i for i,x in enumerate(EMPDataFiles[i]) if x == dataEMPPath + '/' + qtr + '/DTagelvl.txt']
        EMPDataOrig[i] = EMPDataOrig[i].merge(EMPDataList[i][ind2[0]], on = 'AGELVL', how = 'left')

        #LOSLVL - LOSLVLT
        ind2 = [i for i,x in enumerate(EMPDataFiles[i]) if x == dataEMPPath + '/' + qtr + '/DTloslvl.txt']
        EMPDataOrig[i] = EMPDataOrig[i].merge(EMPDataList[i][ind2[0]], on = 'LOSLVL', how = 'left')
        EMPDataOrig[i]["LOS"] = EMPDataOrig[i]["LOS"].apply(pd.to_numeric)
        
        ##LOC - LocTypeT, LocT
        ind2 = [i for i,x in enumerate(EMPDataFiles[i]) if x == dataEMPPath + '/' + qtr + '/DTloc.txt']
        EMPDataOrig[i] = EMPDataOrig[i].merge(EMPDataList[i][ind2[0]], on = 'LOC', how = 'left')
 
        ##OCC - OCCTYPT, OCCFAM
        ind2 = [i for i,x in enumerate(EMPDataFiles[i]) if x == dataEMPPath + '/' + qtr + '/DTocc.txt']
        EMPDataOrig[i] = EMPDataOrig[i].merge(EMPDataList[i][ind2[0]], on = 'OCC', how = 'left')

        ##PATCO - PATCOT
        ind2 = [i for i,x in enumerate(EMPDataFiles[i]) if x == dataEMPPath + '/' + qtr + '/DTpatco.txt']
        EMPDataOrig[i] = EMPDataOrig[i].merge(EMPDataList[i][ind2[0]], on = 'PATCO', how = 'left')

        ##PPGRD - PayPlan, PPGroup, PPTYP
        ind2 = [i for i,x in enumerate(EMPDataFiles[i]) if x == dataEMPPath + '/' + qtr + '/DTppgrd.txt']
        EMPDataOrig[i] = EMPDataOrig[i].merge(EMPDataList[i][ind2[0]], on = 'PPGRD', how = 'left')

        ##SALLVL - SALLVLT
        ind2 = [i for i,x in enumerate(EMPDataFiles[i]) if x == dataEMPPath + '/' + qtr + '/DTsallvl.txt']
        EMPDataOrig[i] = EMPDataOrig[i].merge(EMPDataList[i][ind2[0]], on = 'SALLVL', how = 'left')

        ##TOA - TOATYP
        ind2 = [i for i,x in enumerate(EMPDataFiles[i]) if x == dataEMPPath + '/' + qtr + '/DTtoa.txt']
        EMPDataOrig[i] = EMPDataOrig[i].merge(EMPDataList[i][ind2[0]], on = 'TOA', how = 'left')

        ##WORKSCH - WSTYPT
        ind2 = [i for i,x in enumerate(EMPDataFiles[i]) if x == dataEMPPath + '/' + qtr + '/DTwrksch.txt']
        EMPDataOrig[i] = EMPDataOrig[i].merge(EMPDataList[i][ind2[0]], on = 'WORKSCH', how = 'left')

        display(EMPDataOrig[i].head())

    EMPDataOrig4Q = pd.concat([EMPDataOrig[j] for j in range(0,len(EMPDataOrig))])
    print("Original EMP data size of: "+str(len(EMPDataOrig4Q)))
    print("Removing "+str(len(EMPDataOrig4Q[EMPDataOrig4Q["LOCTYP"] != "1"]))+" Non-US observations.")
    
       ## Remove Non-US Data
    EMPDataOrig4Q = EMPDataOrig4Q[EMPDataOrig4Q["LOCTYP"] == "1"]

    print("Removing "+str(len(EMPDataOrig4Q[EMPDataOrig4Q["OCCTYP"] == "3"]))+" observations with no specified Occupation.")

       ## Remove Observations with no specified occupation
    EMPDataOrig4Q = EMPDataOrig4Q[EMPDataOrig4Q["OCCTYP"] != "3"]

    print("Removing "+str(len(EMPDataOrig4Q[EMPDataOrig4Q["SALLVL"] == "Z"]))+" observations with no specified Salary.")

       ## Remove Observations with no specified salary
    EMPDataOrig4Q = EMPDataOrig4Q[EMPDataOrig4Q["SALLVL"] != "Z"]

    print("Removing "+str(len(EMPDataOrig4Q[EMPDataOrig4Q["LOSLVL"] == "Z"]))+" observations with no specified Length of Service.")

       ## Remove Observations with no specified LOSLVL
    EMPDataOrig4Q = EMPDataOrig4Q[EMPDataOrig4Q["LOSLVL"] != "Z"]

    print("Removing "+str(len(EMPDataOrig4Q[EMPDataOrig4Q["AGELVL"] == "A"]))+" observations of Age Level A.")

        ## Remove Observations from Age Level A (less than 20 years old)
    EMPDataOrig4Q = EMPDataOrig4Q[EMPDataOrig4Q["AGELVL"] != "A"]

    print("Removing "+str(len(EMPDataOrig4Q[EMPDataOrig4Q["AGELVL"] == "Z"]))+" observations with no specified Age Level.")

        ## Remove Observations with no specified Age Level
    EMPDataOrig4Q = EMPDataOrig4Q[EMPDataOrig4Q["AGELVL"] != "Z"]

        ## Fix differences in spaces on WORKSCHT Column
    EMPDataOrig4Q["WORKSCHT"] = np.where(EMPDataOrig4Q["WORKSCHT"].str[0]=="F", 'Full-time Nonseasonal',
                                    np.where(EMPDataOrig4Q["WORKSCHT"].str[0]=="I", 'Intermittent Nonseasonal',
                                             np.where(EMPDataOrig4Q["WORKSCHT"].str[0]=="P", 'Part-time Nonseasonal',
                                                      np.where(EMPDataOrig4Q["WORKSCHT"].str[0]=="G", 'Full-time Seasonal',
                                                            np.where(EMPDataOrig4Q["WORKSCHT"].str[0]=="J", 'Intermittent Seasonal',
                                                                    np.where(EMPDataOrig4Q["WORKSCHT"].str[0]=="Q", 'Part-time Seasonal',
                                                                            np.where(EMPDataOrig4Q["WORKSCHT"].str[0]=="T", 'Part-time Job Sharer Seasonal',
                                                                                    np.where(EMPDataOrig4Q["WORKSCHT"].str[0]=="S", 'Part-time Job Sharer Nonseasonal',
                                                                                            np.where(EMPDataOrig4Q["WORKSCHT"].str[0]=="B", 'Full-time Nonseasonal Baylor Plan',
                                                                                                    'NO WORK SCHEDULE REPORTED' ### ELSE case represents Night
                                                                                                     )
                                                                                             )
                                                                                     )
                                                                             )
                                                                     )
                                                              )
                                                     )
                                            )
                                   )    

    pickleObject(EMPDataOrig4Q, "EMPDataOrig4Q")

print("New EMP data size of: "+str(len(EMPDataOrig4Q)))
Found the File! Loading Pickle Now!
New EMP data size of: 8008911
CPU times: user 9.69 s, sys: 1.83 s, total: 11.5 s
Wall time: 11.5 s
In [6]:
display(EMPDataOrig4Q.describe().transpose())
count mean std min 25% 50% 75% max
SALARY 8008911.0 80067.37279 37918.758366 15120.0 51437.0 74130.0 99957.0 401589.0
LOS 8008911.0 13.06029 10.446755 0.0 4.9 10.0 20.1 71.1
In [7]:
%matplotlib inline

#sns.boxplot(y = "SALARY", data = EMPDataOrig4Q)

With both our separation and non-separation data loaded, we calculate three new attributes through aggregation or calculation amongst various attributes.

1) SEP Count by Date & Occupation – total number of separations (of any type) for a given Date and Occupation;

2) SEP Count by Date & Location – total number of separations (of any type) for a given Date and Location;

3) Industry Average Salary – Average salary amongst non-separated employees, grouped by quarter, occupation, pay grade, and work schedule;

We proceed, by concatenating our Separation and Non-Separation observations, and merge these newly calculated attributes to the concatenated dataset.

In [8]:
%%time
%matplotlib inline

##Aggregate Number of Total Separations in current month for given Occ
AggSEPCount_EFDATE_OCC= pd.DataFrame({'SEPCount_EFDATE_OCC' : OPMDataMerged.groupby(["EFDATE", "OCC"]).size()}).reset_index()
display(AggSEPCount_EFDATE_OCC.head())


##Aggregate Number of Total Separations in current month for given LOC
AggSEPCount_EFDATE_LOC = pd.DataFrame({'SEPCount_EFDATE_LOC' : OPMDataMerged.groupby(["EFDATE", "LOC"]).size()}).reset_index()
display(AggSEPCount_EFDATE_LOC.head())

##Average Quarterly EMP Salary by occ 
AggIndAvgSalary = pd.DataFrame({'count' : EMPDataOrig4Q.groupby(["QTR", "OCC", "PPGRD", "WORKSCHT"]).size()}).reset_index()
AggIndAvgSalary2 = pd.DataFrame({'IndSalarySum' : EMPDataOrig4Q.groupby(["QTR", "OCC", "PPGRD", "WORKSCHT"])["SALARY"].sum()}).reset_index()
AggIndAvgSalary = AggIndAvgSalary.merge(AggIndAvgSalary2,on=["QTR", "OCC", "PPGRD", "WORKSCHT"])
AggIndAvgSalary["IndAvgSalary"] = AggIndAvgSalary["IndSalarySum"]/AggIndAvgSalary["count"]
del AggIndAvgSalary["count"]
del AggIndAvgSalary["IndSalarySum"]
display(AggIndAvgSalary.head())
EFDATE OCC SEPCount_EFDATE_OCC
0 201410 0006 20
1 201410 0007 89
2 201410 0017 1
3 201410 0018 33
4 201410 0019 1
EFDATE LOC SEPCount_EFDATE_LOC
0 201410 01 239
1 201410 02 261
2 201410 04 499
3 201410 05 132
4 201410 06 1926
QTR OCC PPGRD WORKSCHT IndAvgSalary
0 1 0006 ES-** Full-time Nonseasonal 161827.273973
1 1 0006 GL-09 Full-time Nonseasonal 63970.126984
2 1 0006 GS-09 Full-time Nonseasonal 56876.500000
3 1 0006 GS-11 Full-time Nonseasonal 72865.783673
4 1 0006 GS-12 Full-time Nonseasonal 85742.663717
CPU times: user 2.94 s, sys: 359 ms, total: 3.3 s
Wall time: 3.3 s
In [9]:
#Merge Two Datasets
### NS SEP code means NonSeparation
###add hardcoded null value columns where applicable
EMPDataOrig4Q["SEP"] = "NS"
EMPDataOrig4Q["GENDER"] = np.nan
EMPDataOrig4Q["COUNT"] = np.nan

OPMDataMerged["DATECODE"] = OPMDataMerged["EFDATE"]

OPMColList = ["AGYSUB", "SEP", "DATECODE",   "AGELVL", "GENDER", "GSEGRD", "LOSLVL", "LOC", "OCC", "PATCO", "PPGRD", "SALLVL", "TOA", "WORKSCH", "COUNT", "SALARY", "LOS", "AGYTYP", "AGYTYPT", "AGY", "AGYT", "AGYSUBT", "QTR", "AGELVLT", "LOSLVLT", "LOCTYP", "LOCTYPT", "LOCT", "OCCTYP", "OCCTYPT", "OCCFAM", "OCCFAMT", "OCCT", "PATCOT", "PPTYP", "PPTYPT", "PPGROUP", "PPGROUPT", "PAYPLAN", "PAYPLANT", "SALLVLT", "TOATYP", "TOATYPT", "TOAT", "WSTYP", "WSTYPT", "WORKSCHT"]
EMPColList = ["AGYSUB", "SEP", "DATECODE", "AGELVL", "GENDER", "GSEGRD", "LOSLVL", "LOC", "OCC", "PATCO", "PPGRD", "SALLVL", "TOA", "WORKSCH", "COUNT", "SALARY", "LOS", "AGYTYP", "AGYTYPT", "AGY", "AGYT", "AGYSUBT", "QTR", "AGELVLT", "LOSLVLT", "LOCTYP", "LOCTYPT", "LOCT", "OCCTYP", "OCCTYPT", "OCCFAM", "OCCFAMT", "OCCT", "PATCOT", "PPTYP", "PPTYPT", "PPGROUP", "PPGROUPT", "PAYPLAN", "PAYPLANT", "SALLVLT", "TOATYP", "TOATYPT", "TOAT", "WSTYP", "WSTYPT", "WORKSCHT"]

OPMDataMerged = pd.concat([OPMDataMerged[OPMColList], EMPDataOrig4Q[EMPColList]], ignore_index=True)
print("Total concatenated data size for SEP and non-SEP: "+str(len(OPMDataMerged)))

OPMDataMerged = OPMDataMerged.merge(AggSEPCount_EFDATE_OCC, left_on = ['DATECODE','OCC'], right_on = ['EFDATE','OCC'], how = 'left')
OPMDataMerged = OPMDataMerged.merge(AggSEPCount_EFDATE_LOC, left_on = ['DATECODE','LOC'], right_on = ['EFDATE','LOC'], how = 'left')
OPMDataMerged = OPMDataMerged.merge(AggIndAvgSalary, on = ['QTR','OCC', 'PPGRD', 'WORKSCHT'], how = 'left')
OPMDataMerged["SalaryOverUnderIndAvg"] = OPMDataMerged["SALARY"] - OPMDataMerged["IndAvgSalary"]

del OPMDataMerged["EFDATE_x"]
del OPMDataMerged["EFDATE_y"]

display(OPMDataMerged.head())
display(OPMDataMerged.tail())
Total concatenated data size for SEP and non-SEP: 8223193
AGYSUB SEP DATECODE AGELVL GENDER GSEGRD LOSLVL LOC OCC PATCO PPGRD SALLVL TOA WORKSCH COUNT SALARY LOS AGYTYP AGYTYPT AGY AGYT AGYSUBT QTR AGELVLT LOSLVLT LOCTYP LOCTYPT LOCT OCCTYP OCCTYPT OCCFAM OCCFAMT OCCT PATCOT PPTYP PPTYPT PPGROUP PPGROUPT PAYPLAN PAYPLANT SALLVLT TOATYP TOATYPT TOAT WSTYP WSTYPT WORKSCHT SEPCount_EFDATE_OCC SEPCount_EFDATE_LOC IndAvgSalary SalaryOverUnderIndAvg
0 AA00 SC 201507 C M 11 A 11 0905 1 GS-11 F 40 F 1.0 63722.0 0.8 4 Small Independent Agencies (less than 100 empl... AA AA-ADMINISTRATIVE CONFERENCE OF THE UNITED STATES AA00-ADMINISTRATIVE CONFERENCE OF THE UNITED S... 4 25-29 Less than 1 year 1 United States 11-DISTRICT OF COLUMBIA 1 White Collar 09 09xx-LEGAL AND KINDRED 0905-GENERAL ATTORNEY Professional 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans GS GS-GENERAL SCHEDULE $60,000 - $69,999 2 Non-permanent 40-Excepted Service - Schedule A 1 Full-time Full-time Nonseasonal 205.0 1319 64540.593830 -818.593830
1 AA00 SC 201506 D F 15 C 11 0905 1 GS-15 L 30 F 1.0 126245.0 4.8 4 Small Independent Agencies (less than 100 empl... AA AA-ADMINISTRATIVE CONFERENCE OF THE UNITED STATES AA00-ADMINISTRATIVE CONFERENCE OF THE UNITED S... 3 30-34 3 - 4 years 1 United States 11-DISTRICT OF COLUMBIA 1 White Collar 09 09xx-LEGAL AND KINDRED 0905-GENERAL ATTORNEY Professional 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans GS GS-GENERAL SCHEDULE $120,000 - $129,999 1 Permanent 30-Excepted Service - Schedule A 1 Full-time Full-time Nonseasonal 207.0 1132 149864.298504 -23619.298504
2 AF** SA 201503 H M 11 C 48 2210 2 GS-11 F 10 F 1.0 66585.0 4.9 1 Cabinet Level Agencies AF AF-DEPARTMENT OF THE AIR FORCE AF**-INVALID 2 50-54 3 - 4 years 1 United States 48-TEXAS 1 White Collar 22 22xx-INFORMATION TECHNOLOGY 2210-INFORMATION TECHNOLOGY MANAGEMENT Administrative 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans GS GS-GENERAL SCHEDULE $60,000 - $69,999 1 Permanent 10-Competitive Service - Career 1 Full-time Full-time Nonseasonal 439.0 1087 71530.963755 -4945.963755
3 AF02 SD 201506 I M 15 J 35 0301 2 GS-15 O 10 F 1.0 156737.0 39.8 1 Cabinet Level Agencies AF AF-DEPARTMENT OF THE AIR FORCE AF02-AIR FORCE INSPECTION AGENCY (FO) 3 55-59 35 years or more 1 United States 35-NEW MEXICO 1 White Collar 03 03xx-GENERAL ADMIN, CLERICAL, & OFFICE SVCS 0301-MISCELLANEOUS ADMINISTRATION AND PROGRAM Administrative 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans GS GS-GENERAL SCHEDULE $150,000 - $159,999 1 Permanent 10-Competitive Service - Career 1 Full-time Full-time Nonseasonal 670.0 265 146735.220304 10001.779696
4 AF03 SC 201509 H M 13 B 06 0301 2 GS-13 I 15 F 1.0 92973.0 1.0 1 Cabinet Level Agencies AF AF-DEPARTMENT OF THE AIR FORCE AF03-AIR FORCE OPERATIONAL TEST AND EVALUATION... 4 50-54 1 - 2 years 1 United States 06-CALIFORNIA 1 White Collar 03 03xx-GENERAL ADMIN, CLERICAL, & OFFICE SVCS 0301-MISCELLANEOUS ADMINISTRATION AND PROGRAM Administrative 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans GS GS-GENERAL SCHEDULE $90,000 - $99,999 1 Permanent 15-Competitive Service - Career-Conditional 1 Full-time Full-time Nonseasonal 721.0 1853 101641.124025 -8668.124025
AGYSUB SEP DATECODE AGELVL GENDER GSEGRD LOSLVL LOC OCC PATCO PPGRD SALLVL TOA WORKSCH COUNT SALARY LOS AGYTYP AGYTYPT AGY AGYT AGYSUBT QTR AGELVLT LOSLVLT LOCTYP LOCTYPT LOCT OCCTYP OCCTYPT OCCFAM OCCFAMT OCCT PATCOT PPTYP PPTYPT PPGROUP PPGROUPT PAYPLAN PAYPLANT SALLVLT TOATYP TOATYPT TOAT WSTYP WSTYPT WORKSCHT SEPCount_EFDATE_OCC SEPCount_EFDATE_LOC IndAvgSalary SalaryOverUnderIndAvg
8223188 ZU00 NS 201509 D NaN NaN C 11 0301 2 AD-00 G 48 F NaN 76377.0 4.8 4 Small Independent Agencies (less than 100 empl... ZU ZU-DWIGHT D. EISENHOWER MEMORIAL COMMISSION ZU00-DWIGHT D. EISENHOWER MEMORIAL COMMISSION 4 30-34 3 - 4 years 1 United States 11-DISTRICT OF COLUMBIA 1 White Collar 03 03xx-GENERAL ADMIN, CLERICAL, & OFFICE SVCS 0301-MISCELLANEOUS ADMINISTRATION AND PROGRAM Administrative 3 Other White Collar Pay Plans 31 Governmentwide or Multi-Agency Plans AD AD-ADMINISTRATIVELY DETERMINED RATES, NOT ELSE... $70,000 - $79,999 2 Non-permanent 48-Excepted Service - Other 1 Full-time Full-time Nonseasonal 721.0 1391 115840.182250 -39463.182250
8223189 ZU00 NS 201509 K NaN NaN D 11 0301 2 AD-00 M 48 F NaN 139517.0 7.0 4 Small Independent Agencies (less than 100 empl... ZU ZU-DWIGHT D. EISENHOWER MEMORIAL COMMISSION ZU00-DWIGHT D. EISENHOWER MEMORIAL COMMISSION 4 65 or more 5 - 9 years 1 United States 11-DISTRICT OF COLUMBIA 1 White Collar 03 03xx-GENERAL ADMIN, CLERICAL, & OFFICE SVCS 0301-MISCELLANEOUS ADMINISTRATION AND PROGRAM Administrative 3 Other White Collar Pay Plans 31 Governmentwide or Multi-Agency Plans AD AD-ADMINISTRATIVELY DETERMINED RATES, NOT ELSE... $130,000 - $139,999 2 Non-permanent 48-Excepted Service - Other 1 Full-time Full-time Nonseasonal 721.0 1391 115840.182250 23676.817750
8223190 ZU00 NS 201509 K NaN NaN D 11 0301 2 AD-00 O 48 F NaN 158671.0 7.0 4 Small Independent Agencies (less than 100 empl... ZU ZU-DWIGHT D. EISENHOWER MEMORIAL COMMISSION ZU00-DWIGHT D. EISENHOWER MEMORIAL COMMISSION 4 65 or more 5 - 9 years 1 United States 11-DISTRICT OF COLUMBIA 1 White Collar 03 03xx-GENERAL ADMIN, CLERICAL, & OFFICE SVCS 0301-MISCELLANEOUS ADMINISTRATION AND PROGRAM Administrative 3 Other White Collar Pay Plans 31 Governmentwide or Multi-Agency Plans AD AD-ADMINISTRATIVELY DETERMINED RATES, NOT ELSE... $150,000 - $159,999 2 Non-permanent 48-Excepted Service - Other 1 Full-time Full-time Nonseasonal 721.0 1391 115840.182250 42830.817750
8223191 ZU00 NS 201509 B NaN NaN B 11 0301 2 AD-00 C 48 F NaN 36244.0 1.6 4 Small Independent Agencies (less than 100 empl... ZU ZU-DWIGHT D. EISENHOWER MEMORIAL COMMISSION ZU00-DWIGHT D. EISENHOWER MEMORIAL COMMISSION 4 20-24 1 - 2 years 1 United States 11-DISTRICT OF COLUMBIA 1 White Collar 03 03xx-GENERAL ADMIN, CLERICAL, & OFFICE SVCS 0301-MISCELLANEOUS ADMINISTRATION AND PROGRAM Administrative 3 Other White Collar Pay Plans 31 Governmentwide or Multi-Agency Plans AD AD-ADMINISTRATIVELY DETERMINED RATES, NOT ELSE... $30,000 - $39,999 2 Non-permanent 48-Excepted Service - Other 1 Full-time Full-time Nonseasonal 721.0 1391 115840.182250 -79596.182250
8223192 ZU00 NS 201509 E NaN NaN D 11 0505 2 AD-00 I 48 F NaN 99288.0 5.0 4 Small Independent Agencies (less than 100 empl... ZU ZU-DWIGHT D. EISENHOWER MEMORIAL COMMISSION ZU00-DWIGHT D. EISENHOWER MEMORIAL COMMISSION 4 35-39 5 - 9 years 1 United States 11-DISTRICT OF COLUMBIA 1 White Collar 05 05xx-ACCOUNTING AND BUDGET 0505-FINANCIAL MANAGEMENT Administrative 3 Other White Collar Pay Plans 31 Governmentwide or Multi-Agency Plans AD AD-ADMINISTRATIVELY DETERMINED RATES, NOT ELSE... $90,000 - $99,999 2 Non-permanent 48-Excepted Service - Other 1 Full-time Full-time Nonseasonal 7.0 1391 148382.833333 -49094.833333
In [10]:
print(len(OPMDataMerged[OPMDataMerged["SEPCount_EFDATE_OCC"].isnull()]))

display(OPMDataMerged[OPMDataMerged["SEPCount_EFDATE_OCC"].isnull()][["SEP","DATECODE", "OCC"]].drop_duplicates())
50993
SEP DATECODE OCC
217479 NS 201412 7402
217582 NS 201412 7420
217603 NS 201412 1051
217663 NS 201412 1054
218685 NS 201412 2504
218871 NS 201412 8201
218999 NS 201412 4104
219003 NS 201412 4715
219135 NS 201412 0698
220085 NS 201412 0019
220426 NS 201412 3602
221497 NS 201412 2608
221637 NS 201412 3725
224242 NS 201412 6968
225410 NS 201412 0392
226132 NS 201412 3606
228440 NS 201412 2601
231003 NS 201412 3940
231189 NS 201412 5439
246316 NS 201412 1725
246379 NS 201412 5317
246874 NS 201412 5737
247551 NS 201412 1386
254687 NS 201412 0394
259606 NS 201412 4819
264047 NS 201412 2144
266228 NS 201412 1056
268830 NS 201412 5736
270371 NS 201412 0021
271810 NS 201412 3872
271986 NS 201412 4301
273244 NS 201412 3701
273326 NS 201412 6656
273665 NS 201412 8601
275118 NS 201412 3858
275185 NS 201412 4745
277206 NS 201412 4816
279195 NS 201412 1699
284633 NS 201412 5423
289472 NS 201412 1321
295232 NS 201412 3727
305466 NS 201412 1521
319867 NS 201412 0642
325062 NS 201412 4373
332634 NS 201412 2110
349140 NS 201412 0134
376747 NS 201412 0435
377161 NS 201412 1382
380400 NS 201412 0440
380444 NS 201412 0890
380485 NS 201412 1221
380534 NS 201412 0799
380549 NS 201412 0471
381610 NS 201412 5002
381660 NS 201412 0302
382823 NS 201412 4737
383757 NS 201412 1384
387315 NS 201412 3511
395468 NS 201412 1380
407172 NS 201412 0880
417564 NS 201412 1202
422349 NS 201412 0184
431266 NS 201412 5729
444970 NS 201412 3515
455591 NS 201412 4414
456269 NS 201412 1850
457198 NS 201412 0160
461672 NS 201412 0136
475474 NS 201412 1374
475784 NS 201412 6517
475903 NS 201412 6605
480003 NS 201412 5310
485323 NS 201412 3605
500481 NS 201412 4741
503007 NS 201412 1397
505340 NS 201412 3314
506488 NS 201412 5323
516998 NS 201412 4101
519478 NS 201412 0322
558933 NS 201412 4010
559676 NS 201412 0648
593579 NS 201412 3301
596650 NS 201412 3101
625941 NS 201412 7603
661444 NS 201412 4807
661550 NS 201412 3428
662101 NS 201412 5738
676144 NS 201412 5205
685955 NS 201412 6505
686300 NS 201412 3546
686445 NS 201412 5427
704369 NS 201412 2161
709277 NS 201412 9927
709522 NS 201412 9968
711524 NS 201412 9944
711608 NS 201412 9916
711636 NS 201412 9957
712047 NS 201412 9960
712126 NS 201412 9971
722081 NS 201412 1226
722670 NS 201412 1223
725221 NS 201412 1299
766570 NS 201412 1999
859013 NS 201412 1541
966674 NS 201412 0106
966676 NS 201412 0243
966716 NS 201412 0140
971520 NS 201412 0357
1087460 NS 201412 1046
1145227 NS 201412 4717
1345880 NS 201412 2501
1359410 NS 201412 3910
1363515 NS 201412 9961
1384266 NS 201412 9905
1389961 NS 201412 5419
1502113 NS 201412 3604
1503521 NS 201412 3808
1528597 NS 201412 1021
1534692 NS 201412 9942
1534710 NS 201412 9997
1534741 NS 201412 9975
1534742 NS 201412 9930
1534756 NS 201412 9945
1534808 NS 201412 9972
1534811 NS 201412 9995
1534822 NS 201412 9940
1534917 NS 201412 9993
1534931 NS 201412 9982
1535050 NS 201412 9999
1535060 NS 201412 9915
1535179 NS 201412 9955
1535640 NS 201412 9919
1535643 NS 201412 9918
1536227 NS 201412 9914
1537487 NS 201412 9921
1538507 NS 201412 9903
1562285 NS 201412 5221
1620441 NS 201412 1831
1846895 NS 201412 5440
1846946 NS 201412 3513
1848770 NS 201412 4406
1848778 NS 201412 4454
1872827 NS 201412 0593
1906935 NS 201412 0625
1937597 NS 201412 0637
2209093 NS 201503 1054
2209135 NS 201503 0050
2209165 NS 201503 7420
2209549 NS 201503 4805
2209562 NS 201503 7401
2209567 NS 201503 0062
2209830 NS 201503 1051
2210138 NS 201503 5767
2210218 NS 201503 2504
2210251 NS 201503 3940
2210298 NS 201503 4715
2210777 NS 201503 0017
2210790 NS 201503 0019
2210923 NS 201503 5026
2211013 NS 201503 3602
2211337 NS 201503 4255
2211397 NS 201503 3606
2211430 NS 201503 3809
2211601 NS 201503 1501
2211622 NS 201503 2608
2211840 NS 201503 3901
2211850 NS 201503 0698
2212525 NS 201503 0667
2213232 NS 201503 8610
2216698 NS 201503 4605
2216720 NS 201503 5439
2217256 NS 201503 1015
2221243 NS 201503 3725
2237081 NS 201503 5737
2237389 NS 201503 5317
2237807 NS 201503 1725
2237838 NS 201503 0131
2238836 NS 201503 1386
2239148 NS 201503 4417
2239413 NS 201503 4401
2245721 NS 201503 5876
2247270 NS 201503 4201
2250530 NS 201503 2135
2251137 NS 201503 0394
2254034 NS 201503 4819
2255121 NS 201503 7001
2255147 NS 201503 0021
2255494 NS 201503 2144
2257059 NS 201503 4602
2257560 NS 201503 4601
2258388 NS 201503 1056
2262895 NS 201503 3769
2262896 NS 201503 3707
2262911 NS 201503 4850
2263867 NS 201503 6656
2264417 NS 201503 4745
2264609 NS 201503 3872
2264927 NS 201503 4616
2265294 NS 201503 4301
2266492 NS 201503 8601
2267324 NS 201503 3727
2268045 NS 201503 7006
2269170 NS 201503 3712
2269386 NS 201503 2032
2273426 NS 201503 1521
2273438 NS 201503 0688
2274894 NS 201503 3858
2278199 NS 201503 4373
2282112 NS 201503 3401
2290158 NS 201503 4816
2305124 NS 201503 1321
2312141 NS 201503 5313
2319977 NS 201503 0642
2322021 NS 201503 1372
2326923 NS 201503 2110
2332047 NS 201503 1815
2367236 NS 201503 1146
2367963 NS 201503 1382
2368576 NS 201503 0435
2371118 NS 201503 0471
2371219 NS 201503 0487
2371445 NS 201503 1221
2373151 NS 201503 5002
2373803 NS 201503 0799
2373812 NS 201503 1384
2373939 NS 201503 0302
2375066 NS 201503 5001
2382890 NS 201503 0135
2383750 NS 201503 1380
2394962 NS 201503 5786
2398815 NS 201503 1202
2421724 NS 201503 5729
2422326 NS 201503 0309
2429714 NS 201503 3511
2435949 NS 201503 3515
2445822 NS 201503 4414
2445959 NS 201503 4402
2446076 NS 201503 1850
2446395 NS 201503 0160
2451711 NS 201503 0136
2465677 NS 201503 6517
2465911 NS 201503 1374
2469001 NS 201503 7601
2469608 NS 201503 5310
2473512 NS 201503 3605
2478500 NS 201503 4741
2481863 NS 201503 1630
2487747 NS 201503 5042
2492992 NS 201503 1397
2493609 NS 201503 5318
... ... ... ...
4493254 NS 201506 3605
4500627 NS 201506 5784
4501690 NS 201506 5323
4505453 NS 201506 3314
4511881 NS 201506 0322
4567936 NS 201506 0313
4590882 NS 201506 4754
4591246 NS 201506 3101
4618223 NS 201506 3301
4625645 NS 201506 7603
4647430 NS 201506 3106
4648437 NS 201506 4101
4656879 NS 201506 0873
4659315 NS 201506 5738
4660107 NS 201506 3802
4666481 NS 201506 4807
4673196 NS 201506 5205
4683095 NS 201506 6505
4683209 NS 201506 3546
4683500 NS 201506 5427
4706313 NS 201506 9924
4706406 NS 201506 9954
4706448 NS 201506 9923
4706828 NS 201506 9932
4706944 NS 201506 9920
4706992 NS 201506 9916
4707380 NS 201506 9971
4707627 NS 201506 9960
4711283 NS 201506 9944
4718825 NS 201506 1226
4719354 NS 201506 1223
4720834 NS 201506 1299
4838452 NS 201506 1163
4941776 NS 201506 0082
4967369 NS 201506 0140
4967373 NS 201506 0243
4967385 NS 201506 0106
4971515 NS 201506 0357
5079100 NS 201506 1046
5238592 NS 201506 1889
5364837 NS 201506 9905
5366360 NS 201506 3910
5379475 NS 201506 9961
5397362 NS 201506 4416
5397878 NS 201506 5419
5515876 NS 201506 3808
5525861 NS 201506 1021
5543637 NS 201506 9982
5543654 NS 201506 9942
5543662 NS 201506 9997
5543680 NS 201506 9955
5543695 NS 201506 9975
5543698 NS 201506 9906
5543700 NS 201506 9991
5543706 NS 201506 9908
5543725 NS 201506 9930
5543741 NS 201506 9976
5543817 NS 201506 9919
5543902 NS 201506 9999
5543929 NS 201506 9929
5544204 NS 201506 9940
5544280 NS 201506 9939
5544281 NS 201506 9914
5544294 NS 201506 9918
5544388 NS 201506 9915
5545181 NS 201506 9921
5560038 NS 201506 9904
5570248 NS 201506 5221
5612184 NS 201506 3428
5631455 NS 201506 1831
5708205 NS 201506 2125
5846894 NS 201506 5440
5847347 NS 201506 3513
5848754 NS 201506 4406
5848756 NS 201506 4441
5848778 NS 201506 4454
5848780 NS 201506 4449
5874147 NS 201506 0593
5899552 NS 201506 0625
5915763 NS 201506 0637
6215137 NS 201509 7420
6215177 NS 201509 1054
6215183 NS 201509 0062
6215311 NS 201509 1051
6216048 NS 201509 0319
6216143 NS 201509 0332
6216452 NS 201509 5026
6216656 NS 201509 3602
6216697 NS 201509 4255
6216714 NS 201509 3610
6216843 NS 201509 4715
6217038 NS 201509 8610
6217069 NS 201509 1501
6217109 NS 201509 4714
6217177 NS 201509 8201
6218219 NS 201509 0017
6221598 NS 201509 5439
6221611 NS 201509 6511
6222813 NS 201509 3901
6223238 NS 201509 6968
6224360 NS 201509 3725
6242835 NS 201509 5317
6242837 NS 201509 7305
6243763 NS 201509 3111
6244182 NS 201509 1725
6244772 NS 201509 3606
6245272 NS 201509 4401
6245800 NS 201509 1386
6246495 NS 201509 1815
6248929 NS 201509 1361
6251962 NS 201509 4201
6252800 NS 201509 5401
6253625 NS 201509 5737
6260660 NS 201509 4819
6261977 NS 201509 7001
6262910 NS 201509 2144
6265927 NS 201509 0021
6266002 NS 201509 4602
6269692 NS 201509 0967
6269891 NS 201509 4840
6270010 NS 201509 3707
6270144 NS 201509 5423
6270200 NS 201509 6656
6270425 NS 201509 3872
6270432 NS 201509 4745
6270882 NS 201509 4361
6271499 NS 201509 3701
6271656 NS 201509 3727
6272327 NS 201509 4816
6272630 NS 201509 4850
6273748 NS 201509 3858
6274513 NS 201509 1222
6276289 NS 201509 4616
6276382 NS 201509 4301
6277379 NS 201509 7006
6280721 NS 201509 8601
6308684 NS 201509 1321
6325366 NS 201509 1056
6327220 NS 201509 1521
6334577 NS 201509 2110
6346443 NS 201509 4417
6377693 NS 201509 0434
6378110 NS 201509 1999
6378827 NS 201509 0440
6378853 NS 201509 0487
6378954 NS 201509 0437
6379113 NS 201509 5002
6379245 NS 201509 1384
6380466 NS 201509 0410
6381133 NS 201509 0308
6381165 NS 201509 0302
6391135 NS 201509 0135
6392086 NS 201509 1380
6392140 NS 201509 0965
6405195 NS 201509 0880
6428400 NS 201509 1202
6433233 NS 201509 5729
6435611 NS 201509 0309
6438731 NS 201509 0184
6453143 NS 201509 3515
6464352 NS 201509 4414
6464503 NS 201509 1850
6470218 NS 201509 0136
6483824 NS 201509 1374
6485608 NS 201509 2501
6488173 NS 201509 1630
6490604 NS 201509 5310
6490614 NS 201509 4741
6509539 NS 201509 3605
6511085 NS 201509 0072
6511515 NS 201509 1397
6512110 NS 201509 5782
6512216 NS 201509 5323
6516672 NS 201509 3314
6584508 NS 201509 0635
6593181 NS 201509 0313
6606313 NS 201509 3101
6628632 NS 201509 3301
6639321 NS 201509 7603
6651971 NS 201509 1046
6658080 NS 201509 3106
6658384 NS 201509 4101
6666886 NS 201509 0873
6667185 NS 201509 4373
6669581 NS 201509 4807
6670232 NS 201509 5738
6672326 NS 201509 3802
6693020 NS 201509 5427
6711618 NS 201509 2161
6713304 NS 201509 0958
6716480 NS 201509 9973
6716659 NS 201509 9916
6716801 NS 201509 9932
6717186 NS 201509 9971
6718325 NS 201509 9965
6719926 NS 201509 9960
6729094 NS 201509 1226
6729105 NS 201509 1223
6731464 NS 201509 1299
6741881 NS 201509 5313
6803145 NS 201509 1730
6820061 NS 201509 6941
6847199 NS 201509 1163
6868697 NS 201509 1541
6976225 NS 201509 0140
6976233 NS 201509 0106
6976245 NS 201509 0243
6980096 NS 201509 0357
7155776 NS 201509 4717
7247692 NS 201509 1881
7371930 NS 201509 3910
7376502 NS 201509 9961
7392449 NS 201509 0485
7404982 NS 201509 4403
7405044 NS 201509 4416
7405049 NS 201509 5419
7521217 NS 201509 3808
7524148 NS 201509 3604
7536239 NS 201509 1021
7552743 NS 201509 9991
7552774 NS 201509 9975
7552775 NS 201509 9998
7552813 NS 201509 9976
7552825 NS 201509 9994
7552870 NS 201509 9988
7552961 NS 201509 9940
7552962 NS 201509 9982
7553012 NS 201509 9915
7553021 NS 201509 9930
7553042 NS 201509 9929
7553061 NS 201509 9999
7553126 NS 201509 9993
7553127 NS 201509 9908
7553159 NS 201509 9955
7553740 NS 201509 9914
7553846 NS 201509 9939
7554073 NS 201509 9921
7554679 NS 201509 9919
7554855 NS 201509 9918
7569222 NS 201509 9904
7579652 NS 201509 5221
7612169 NS 201509 3428
7717999 NS 201509 2125
7851216 NS 201509 5440
7851838 NS 201509 3513
7853201 NS 201509 4406
7853227 NS 201509 4454
7884942 NS 201509 0593
7965633 NS 201509 0625
8001140 NS 201509 0637

660 rows × 3 columns

These 50993 Non-Separation observations do not have coverage within the Separation Dataset, thus, we will remove these observations as out of scope demographic in our analysis. Any attempt in predicting these values will not have enough data to support a significant response.

In [11]:
OPMDataMerged = OPMDataMerged[OPMDataMerged["SEPCount_EFDATE_OCC"].notnull()]

print(len(OPMDataMerged[OPMDataMerged["SEPCount_EFDATE_OCC"].isnull()]))

print(len(OPMDataMerged))
0
8172200
In [12]:
print(len(OPMDataMerged[OPMDataMerged["SEPCount_EFDATE_LOC"].isnull()]))

display(OPMDataMerged[OPMDataMerged["SEPCount_EFDATE_LOC"].isnull()][["SEP","DATECODE","LOC"]].drop_duplicates())
0
SEP DATECODE LOC
In [13]:
print(len(OPMDataMerged[OPMDataMerged["IndAvgSalary"].isnull()]))

display(OPMDataMerged[OPMDataMerged["IndAvgSalary"].isnull()][["QTR", "SEP","OCCT", "PPGRD", "WORKSCHT"]].drop_duplicates())
1293
QTR SEP OCCT PPGRD WORKSCHT
257 4 SC 7401-MISC FOOD PREPARATION AND SERVING WG-01 Full-time Nonseasonal
627 4 SC 1301-GENERAL PHYSICAL SCIENCE AD-24 Part-time Nonseasonal
697 4 SJ 0199-SOCIAL SCIENCE STUDENT TRAINEE GS-02 Intermittent Nonseasonal
749 4 SC 3940-BROADCASTING EQUIPMENT OPERATING WG-10 Full-time Nonseasonal
2401 4 SJ 0399-ADMINISTRATION AND OFFICE SUPPORT STUDENT... GS-02 Intermittent Seasonal
3412 2 SC 5003-GARDENING WG-04 Full-time Seasonal
3471 1 SA 5003-GARDENING WG-04 Full-time Seasonal
3551 3 SD 5716-ENGINEERING EQUIPMENT OPERATING WS-14 Full-time Nonseasonal
4937 3 SC 0819-ENVIRONMENTAL ENGINEERING GS-11 Part-time Job Sharer Nonseasonal
5285 1 SD 5716-ENGINEERING EQUIPMENT OPERATING WG-08 Intermittent Seasonal
5363 4 SJ 0189-RECREATION AID AND ASSISTANT GS-03 Intermittent Nonseasonal
5763 1 SD 2005-SUPPLY CLERICAL AND TECHNICIAN GS-04 Part-time Job Sharer Nonseasonal
6079 3 SC 0180-PSYCHOLOGY NH-02 Full-time Nonseasonal
6957 3 SD 0810-CIVIL ENGINEERING DR-03 Full-time Nonseasonal
7015 1 SA 1306-HEALTH PHYSICS DR-01 Full-time Nonseasonal
7376 4 SC 1699-EQUIPMENT AND FACILITIES MANAGEMENT STUDE... GS-05 Full-time Nonseasonal
7395 3 SC 0599-FINANCIAL MANAGEMENT STUDENT TRAINEE DU-01 Full-time Nonseasonal
7464 3 SD 3769-SHOT PEENING MACHINE OPERATING WS-07 Full-time Nonseasonal
7512 4 SC 0840-NUCLEAR ENGINEERING DR-03 Full-time Nonseasonal
7675 2 SD 4714-MODEL MAKING WL-15 Full-time Nonseasonal
7727 4 SC 0189-RECREATION AID AND ASSISTANT GS-02 Part-time Seasonal
7877 4 SJ 0189-RECREATION AID AND ASSISTANT GS-02 Part-time Seasonal
8054 4 SC 0665-SPEECH PATHOLOGY AND AUDIOLOGY DR-03 Full-time Nonseasonal
8160 4 SC 4102-PAINTING WG-05 Part-time Seasonal
8216 2 SA 5725-CRANE OPERATING WG-08 Full-time Nonseasonal
8320 4 SD 5401-MISC INDUSTRIAL EQUIPMENT OPERATION WS-11 Full-time Nonseasonal
8325 1 SC 0189-RECREATION AID AND ASSISTANT DU-01 Part-time Nonseasonal
8389 4 SD 3705-NON-DESTRUCTIVE TESTING WS-16 Full-time Nonseasonal
8435 4 SD 1330-ASTRONOMY AND SPACE SCIENCE DR-04 Full-time Nonseasonal
8449 1 SK 4102-PAINTING WG-05 Part-time Seasonal
9741 4 SC 0189-RECREATION AID AND ASSISTANT GS-03 Part-time Seasonal
9890 1 SI 8801-MISCELLANEOUS AIRCRAFT OVERHAUL WG-08 Part-time Nonseasonal
9903 1 SD 0610-NURSE DR-01 Full-time Nonseasonal
9916 2 SD 0130-FOREIGN AFFAIRS DO-02 Full-time Nonseasonal
10139 4 SC 6901-MISC WAREHOUSING AND STOCK HANDLING WG-06 Part-time Job Sharer Nonseasonal
10656 2 SC 5309-HEATING & BOILER PLANT EQUIPMT MECHANIC WL-11 Full-time Nonseasonal
11491 4 SC 1008-INTERIOR DESIGN GG-12 Full-time Nonseasonal
11516 4 SI 0854-COMPUTER ENGINEERING GG-11 Full-time Nonseasonal
11941 1 SJ 0201-HUMAN RESOURCES MANAGEMENT GS-06 Full-time Nonseasonal
12265 4 SJ 0335-COMPUTER CLERK AND ASSISTANT GS-09 Part-time Nonseasonal
12541 2 SJ 6501-MISC AMMUN, EXPLOSIVES, & TOXIC MATER WORK WG-12 Full-time Nonseasonal
13028 3 SJ 5378-POWERED SUPPORT SYSTEMS MECHANIC WG-10 Part-time Nonseasonal
13029 2 SJ 2610-ELECTRONIC INTEGRATED SYSTEMS MECHANIC WG-12 Part-time Nonseasonal
13643 3 SJ 8602-AIRCRAFT ENGINE MECHANIC WG-04 Full-time Nonseasonal
14084 3 SJ 0340-PROGRAM MANAGEMENT GS-14 Part-time Nonseasonal
15523 2 SJ 2892-AIRCRAFT ELECTRICIAN WG-06 Full-time Nonseasonal
16075 3 SJ 2892-AIRCRAFT ELECTRICIAN WG-07 Full-time Nonseasonal
16454 2 SC 5378-POWERED SUPPORT SYSTEMS MECHANIC WG-06 Full-time Nonseasonal
16512 1 SJ 8602-AIRCRAFT ENGINE MECHANIC WG-06 Full-time Nonseasonal
16691 2 SJ 0132-INTELLIGENCE GS-04 Full-time Nonseasonal
17344 1 SJ 2101-TRANSPORTATION SPECIALIST GS-07 Intermittent Nonseasonal
17376 4 SJ 0335-COMPUTER CLERK AND ASSISTANT GS-07 Part-time Nonseasonal
17426 3 SC 0335-COMPUTER CLERK AND ASSISTANT GS-06 Intermittent Nonseasonal
17464 3 SJ 8852-AIRCRAFT MECHANIC WG-04 Full-time Nonseasonal
17763 1 SJ 4818-AIRCRAFT SURVIVAL FLIGHT EQUIPMENT REPAIR WG-10 Part-time Nonseasonal
19309 4 SD 0701-VETERINARY MEDICAL SCIENCE GM-15 Full-time Nonseasonal
19312 3 SD 0410-ZOOLOGY ST-00 Full-time Nonseasonal
19704 2 SJ 3511-LABORATORY WORKING WG-01 Part-time Nonseasonal
19768 2 SD 0435-PLANT PHYSIOLOGY GM-15 Full-time Nonseasonal
20138 3 SC 0802-ENGINEERING TECHNICAL GS-03 Part-time Nonseasonal
20285 4 SC 3566-CUSTODIAL WORKING WG-01 Intermittent Seasonal
20720 2 SC 0135-FOREIGN AGRICULTURAL AFFAIRS FP-03 Full-time Nonseasonal
20754 4 SJ 0119-ECONOMICS ASSISTANT GS-03 Full-time Seasonal
20760 4 SJ 0399-ADMINISTRATION AND OFFICE SUPPORT STUDENT... GS-04 Full-time Seasonal
20777 3 SD 0135-FOREIGN AGRICULTURAL AFFAIRS FE-01 Full-time Nonseasonal
20878 1 SJ 0189-RECREATION AID AND ASSISTANT GS-01 Full-time Nonseasonal
20928 1 SJ 0462-FORESTRY TECHNICIAN GS-04 Intermittent Seasonal
21599 3 SJ 0455-RANGE TECHNICIAN GS-05 Part-time Nonseasonal
23681 1 SJ 0102-SOCIAL SCIENCE AID AND TECHNICIAN GS-03 Full-time Nonseasonal
24266 1 SI 8610-SMALL ENGINE MECHANIC WG-06 Full-time Seasonal
24310 3 SJ 0455-RANGE TECHNICIAN GS-06 Intermittent Nonseasonal
26446 1 SC 0304-INFORMATION RECEPTIONIST GS-04 Intermittent Nonseasonal
27067 1 SJ 0455-RANGE TECHNICIAN GS-05 Intermittent Seasonal
29585 2 SD 1071-AUDIOVISUAL PRODUCTION GM-13 Full-time Nonseasonal
29689 2 SJ 0802-ENGINEERING TECHNICAL GS-06 Part-time Seasonal
29724 2 SJ 0462-FORESTRY TECHNICIAN GS-01 Full-time Nonseasonal
29878 1 SJ 1001-GENERAL ARTS AND INFORMATION GS-05 Intermittent Seasonal
30106 1 SJ 5201-MISCELLANEOUS OCCUPATIONS WG-05 Intermittent Nonseasonal
30137 3 SA 0430-BOTANY GS-07 Full-time Nonseasonal
30156 2 SJ 0102-SOCIAL SCIENCE AID AND TECHNICIAN GS-04 Intermittent Nonseasonal
30803 4 SC 0189-RECREATION AID AND ASSISTANT GS-04 Intermittent Nonseasonal
30817 3 SJ 1341-METEOROLOGICAL TECHNICIAN GS-08 Part-time Nonseasonal
32058 1 SJ 1371-CARTOGRAPHIC TECHNICIAN GS-07 Intermittent Nonseasonal
32562 1 SC 0399-ADMINISTRATION AND OFFICE SUPPORT STUDENT... GS-02 Full-time Seasonal
33011 1 SC 0335-COMPUTER CLERK AND ASSISTANT GS-07 Part-time Nonseasonal
33713 3 SD 4715-EXHIBITS MAKING/MODELING WL-07 Full-time Nonseasonal
33737 4 SD 0850-ELECTRICAL ENGINEERING GM-14 Full-time Nonseasonal
33870 4 SJ 0318-SECRETARY GS-03 Intermittent Nonseasonal
34226 1 SC 0322-CLERK-TYPIST GS-04 Intermittent Nonseasonal
35280 3 SJ 0486-WILDLIFE BIOLOGY AD-00 Intermittent Nonseasonal
35308 3 SJ 1421-ARCHIVES TECHNICIAN GS-07 Full-time Seasonal
35369 2 SJ 0326-OFFICE AUTOMATION CLERICAL AND ASSISTANCE GS-04 Intermittent Seasonal
35683 3 SC 0421-PLANT PROTECTION TECHNICIAN GS-05 Intermittent Nonseasonal
35733 4 SJ 1421-ARCHIVES TECHNICIAN GS-07 Intermittent Nonseasonal
35779 4 SJ 0404-BIOLOGICAL SCIENCE TECHNICIAN AD-00 Part-time Seasonal
36150 3 SC 1863-FOOD INSPECTION GS-08 Intermittent Nonseasonal
36341 4 SC 1899-INVESTIGATION STUDENT TRAINEE GS-03 Full-time Nonseasonal
36424 2 SD 0896-INDUSTRIAL ENGINEERING GM-13 Full-time Nonseasonal
36788 2 SD 0935-ADMINISTRATIVE LAW JUDGE AL-02 Full-time Nonseasonal
37280 1 SG 0905-GENERAL ATTORNEY FE-02 Full-time Nonseasonal
37464 3 SJ 1140-TRADE SPECIALIST GS-15 Intermittent Nonseasonal
37478 4 SG 0130-FOREIGN AFFAIRS FE-03 Full-time Nonseasonal
37721 1 SC 0809-CONSTRUCTION CONTROL TECHNICAL NJ-03 Full-time Nonseasonal
37845 4 SC 0301-MISCELLANEOUS ADMINISTRATION AND PROGRAM NH-02 Part-time Nonseasonal
38023 1 SC 0318-SECRETARY NK-02 Part-time Nonseasonal
38509 1 SC 0184-SOCIOLOGY GG-12 Full-time Nonseasonal
38675 2 SD 0896-INDUSTRIAL ENGINEERING GG-13 Full-time Nonseasonal
39900 3 SJ 5803-HEAVY MOBILE EQUIPMENT MECHANIC WG-08 Intermittent Nonseasonal
40629 4 SC 6904-TOOLS AND PARTS ATTENDING WG-02 Full-time Nonseasonal
41443 4 SD 5407-ELECTRICAL POWER CONTROLLING WG-08 Full-time Nonseasonal
41565 2 SJ 0085-SECURITY GUARD GS-06 Part-time Nonseasonal
41658 1 SJ 5705-TRACTOR OPERATING WL-04 Intermittent Nonseasonal
41759 1 SD 6610-SMALL ARMS REPAIRING WL-09 Full-time Nonseasonal
41774 1 SI 0072-FINGERPRINT IDENTIFICATION GS-09 Full-time Nonseasonal
41961 1 SC 0085-SECURITY GUARD GS-03 Intermittent Nonseasonal
42017 3 SJ 5716-ENGINEERING EQUIPMENT OPERATING WL-08 Intermittent Nonseasonal
42082 1 SJ 5784-RIVERBOAT OPERATING XH-14 Full-time Seasonal
42267 1 SC 0802-ENGINEERING TECHNICAL GS-10 Intermittent Nonseasonal
42308 3 SJ 6907-MATERIALS HANDLER WG-06 Intermittent Nonseasonal
42324 1 SJ 5786-SMALL CRAFT OPERATING WG-08 Intermittent Nonseasonal
42328 1 SC 0856-ELECTRONICS TECHNICAL GS-09 Intermittent Nonseasonal
42414 2 SC 1699-EQUIPMENT AND FACILITIES MANAGEMENT STUDE... GS-03 Full-time Nonseasonal
42653 4 SC 2805-ELECTRICIAN WY-10 Intermittent Nonseasonal
42718 4 SJ 0899-ENGINEERING AND ARCHITECTURE STUDENT TRAINEE DE-02 Part-time Nonseasonal
42750 4 SJ 5701-MISC TRANSPORTATION/MOBILE EQUIPMENT OPER XF-01 Full-time Nonseasonal
42799 4 SJ 0899-ENGINEERING AND ARCHITECTURE STUDENT TRAINEE DE-01 Intermittent Nonseasonal
42910 3 SC 0499-BIOLOGICAL SCIENCE STUDENT TRAINEE DB-01 Full-time Nonseasonal
43219 3 SJ 5407-ELECTRICAL POWER CONTROLLING WB-00 Part-time Nonseasonal
43234 3 SJ 5701-MISC TRANSPORTATION/MOBILE EQUIPMENT OPER WG-03 Part-time Nonseasonal
43355 3 SJ 0301-MISCELLANEOUS ADMINISTRATION AND PROGRAM DJ-05 Intermittent Nonseasonal
43595 1 SJ 5426-LOCK AND DAM OPERATING WY-03 Full-time Nonseasonal
43739 2 SF 7404-COOKING XH-06 Full-time Seasonal
44192 3 SJ 1599-MATHEMATICS AND STATISTICS STUDENT TRAINEE DB-01 Part-time Nonseasonal
44297 4 SD 1530-STATISTICS DB-04 Part-time Nonseasonal
44406 2 SC 0899-ENGINEERING AND ARCHITECTURE STUDENT TRAINEE GS-05 Intermittent Nonseasonal
44419 2 SA 0890-AGRICULTURAL ENGINEERING DB-02 Full-time Nonseasonal
44469 2 SK 7401-MISC FOOD PREPARATION AND SERVING XH-07 Full-time Seasonal
44784 2 SI 5782-SHIP OPERATING XH-13 Full-time Seasonal
44788 1 SJ 7404-COOKING XF-05 Full-time Nonseasonal
44901 2 SC 1640-FACILITY OPERATIONS SERVICES GS-09 Intermittent Nonseasonal
44952 2 SC 5782-SHIP OPERATING XH-13 Full-time Seasonal
45157 3 SD 0808-ARCHITECTURE DB-05 Full-time Nonseasonal
45354 2 SD 5725-CRANE OPERATING XH-12 Full-time Nonseasonal
45458 1 SJ 3703-WELDING WG-10 Intermittent Nonseasonal
45537 1 SK 0544-CIVILIAN PAY GS-06 Full-time Seasonal
50004 3 SC 0682-DENTAL HYGIENE GS-07 Intermittent Nonseasonal
50228 1 SJ 0560-BUDGET ANALYSIS DJ-03 Part-time Nonseasonal
50820 3 SC 0401-GENERAL NATURAL RESOURCES MANAGEMENT AND ... DB-02 Part-time Nonseasonal
51222 3 SC 0186-SOCIAL SERVICES AID AND ASSISTANT GS-08 Part-time Nonseasonal
51430 1 SC 1712-TRAINING INSTRUCTION DJ-03 Full-time Nonseasonal
51929 1 SC 0089-EMERGENCY MANAGEMENT SPECIALIST DJ-04 Full-time Nonseasonal
52912 2 SC 0085-SECURITY GUARD GS-12 Full-time Nonseasonal
53771 3 SC 6610-SMALL ARMS REPAIRING WG-07 Full-time Nonseasonal
54340 1 SJ 1035-PUBLIC AFFAIRS GS-06 Full-time Nonseasonal
55115 3 SJ 5801-MISC TRANSPORTATION/MOBILE EQUIPMT MAINTNE WG-08 Intermittent Nonseasonal
55382 4 SC 8810-AIRCRAFT PROPELLER MECHANIC WG-08 Full-time Nonseasonal
55575 4 SC 0203-HUMAN RESOURCES ASSISTANCE GS-05 Intermittent Nonseasonal
55689 4 SJ 2604-ELECTRONICS MECHANIC WG-12 Part-time Nonseasonal
57336 3 SJ 5413-FUEL DISTRIBUTION SYSTEM OPERATING WG-05 Intermittent Nonseasonal
57671 1 SJ 5801-MISC TRANSPORTATION/MOBILE EQUIPMT MAINTNE WG-08 Intermittent Nonseasonal
59155 3 SD 3101-MISC FABRIC AND LEATHER WORK WS-11 Full-time Nonseasonal
59259 4 SC 0399-ADMINISTRATION AND OFFICE SUPPORT STUDENT... AD-00 Full-time Nonseasonal
60044 3 SA 6610-SMALL ARMS REPAIRING WL-06 Full-time Nonseasonal
60716 4 SJ 0101-SOCIAL SCIENCE AD-00 Part-time Nonseasonal
61107 2 SD 5201-MISCELLANEOUS OCCUPATIONS WS-15 Full-time Nonseasonal
61239 2 SI 2601-MISC ELECTRONIC EQUIPMT INSTALL & MAINTNE WG-04 Full-time Nonseasonal
62578 4 SA 2608-ELECTRONIC DIGITAL COMPUTER MECHANIC WL-10 Full-time Nonseasonal
63872 3 SF 2005-SUPPLY CLERICAL AND TECHNICIAN GS-04 Full-time Seasonal
63902 3 SF 2610-ELECTRONIC INTEGRATED SYSTEMS MECHANIC WT-00 Full-time Nonseasonal
64021 2 SD 3105-FABRIC WORKING WL-11 Full-time Nonseasonal
64348 3 SC 3101-MISC FABRIC AND LEATHER WORK WG-01 Part-time Nonseasonal
64386 3 SJ 2299-INFORMATION TECHNOLOGY STUDENT TRAINEE DE-01 Part-time Nonseasonal
64539 2 SA 1550-COMPUTER SCIENCE DB-03 Part-time Nonseasonal
64565 2 SC 0830-MECHANICAL ENGINEERING DB-02 Part-time Nonseasonal
64776 2 SJ 0301-MISCELLANEOUS ADMINISTRATION AND PROGRAM DJ-04 Part-time Nonseasonal
65181 4 SC 1510-ACTUARIAL SCIENCE GS-15 Intermittent Nonseasonal
65336 1 SC 0110-ECONOMIST AD-00 Intermittent Nonseasonal
65528 1 SA 0399-ADMINISTRATION AND OFFICE SUPPORT STUDENT... ZA-02 Full-time Nonseasonal
65673 2 SD 1361-NAVIGATIONAL INFORMATION ZA-03 Full-time Nonseasonal
65698 3 SC 2299-INFORMATION TECHNOLOGY STUDENT TRAINEE ZP-01 Full-time Nonseasonal
65736 3 SD 0817-SURVEY TECHNICAL ZT-02 Full-time Nonseasonal
65783 3 SD 5786-SMALL CRAFT OPERATING WG-08 Part-time Nonseasonal
65909 2 SK 1530-STATISTICS ZP-04 Intermittent Nonseasonal
65913 4 SJ 0410-ZOOLOGY ZP-02 Full-time Nonseasonal
65949 1 SD 1382-FOOD TECHNOLOGY ZP-05 Full-time Nonseasonal
66022 2 SC 9932-FIRST ASSISTANT ENGINEER WM-11 Full-time Nonseasonal
66070 2 SA 0505-FINANCIAL MANAGEMENT ZA-05 Full-time Nonseasonal
66108 2 SA 0361-EQUAL OPPORTUNITY ASSISTANCE ZS-04 Full-time Nonseasonal
66142 3 SK 0301-MISCELLANEOUS ADMINISTRATION AND PROGRAM ZA-05 Part-time Nonseasonal
66160 1 SC 0401-GENERAL NATURAL RESOURCES MANAGEMENT AND ... ZP-02 Full-time Seasonal
66266 4 SD 1016-MUSEUM SPECIALIST AND TECHNICIAN ZA-03 Full-time Nonseasonal
66322 3 SJ 1140-TRADE SPECIALIST ED-00 Intermittent Nonseasonal
66328 2 SD 1801-GENERAL INSPECTION, INVESTIGATION, ENFORC... GM-15 Full-time Nonseasonal
66555 2 SC 1224-PATENT EXAMINING GS-09 Full-time Seasonal
66966 3 SC 1222-PATENT ATTORNEY AD-00 Intermittent Nonseasonal
67005 1 SC 1299-COPYRIGHT AND PATENT STUDENT TRAINEE GS-04 Full-time Nonseasonal
67046 2 SC 1320-CHEMISTRY ZP-04 Full-time Seasonal
67055 2 SC 0341-ADMINISTRATIVE OFFICER ZA-02 Part-time Nonseasonal
67061 3 SA 0203-HUMAN RESOURCES ASSISTANCE ZS-04 Part-time Nonseasonal
67064 3 SC 0201-HUMAN RESOURCES MANAGEMENT ZA-03 Intermittent Nonseasonal
67109 4 SJ 2210-INFORMATION TECHNOLOGY MANAGEMENT ZP-05 Intermittent Nonseasonal
67139 4 SC 1310-PHYSICS ZP-03 Part-time Nonseasonal
67145 4 SC 0342-SUPPORT SERVICES ADMINISTRATION ZS-02 Full-time Nonseasonal
67162 4 SK 0809-CONSTRUCTION CONTROL TECHNICAL ZT-02 Full-time Nonseasonal
67169 3 SC 0804-FIRE PROTECTION ENGINEERING ZP-03 Full-time Nonseasonal
67178 4 SC 0342-SUPPORT SERVICES ADMINISTRATION ZS-03 Full-time Nonseasonal
67561 1 SD 1531-STATISTICAL ASSISTANT GG-05 Full-time Seasonal
67840 1 SD 1530-STATISTICS GG-15 Full-time Nonseasonal
69645 3 SA 0201-HUMAN RESOURCES MANAGEMENT GS-07 Full-time Seasonal
69678 3 SC 1371-CARTOGRAPHIC TECHNICIAN GS-04 Full-time Seasonal
70986 2 SA 1529-MATHEMATICAL STATISTICS GS-11 Full-time Seasonal
72229 4 SC 1099-INFORMATION AND ARTS STUDENT TRAINEE CT-04 Full-time Nonseasonal
72291 2 SA 0132-INTELLIGENCE CU-15 Full-time Nonseasonal
72302 2 SD 0905-GENERAL ATTORNEY CU-14 Part-time Nonseasonal
72317 3 SD 0580-CREDIT UNION EXAMINER CU-14 Part-time Nonseasonal
72323 3 SA 0260-EQUAL EMPLOYMENT OPPORTUNITY CU-15 Full-time Nonseasonal
72335 1 SD 0510-ACCOUNTING CU-15 Full-time Nonseasonal
72337 2 SD 1102-CONTRACTING CU-13 Full-time Nonseasonal
72428 2 SC 1102-CONTRACTING NH-04 Part-time Job Sharer Nonseasonal
73089 2 SC 1082-WRITING AND EDITING AD-01 Full-time Nonseasonal
73246 3 SJ 0203-HUMAN RESOURCES ASSISTANCE GS-07 Intermittent Nonseasonal
73318 2 SC 1999-QUALITY INSPECTION STUDENT TRAINEE GS-03 Full-time Nonseasonal
74032 4 SJ 1107-PROPERTY DISPOSAL CLERICAL AND TECHNICIAN GS-04 Full-time Nonseasonal
74457 3 SC 2032-PACKAGING GS-14 Part-time Nonseasonal
75550 1 SD 0080-SECURITY ADMINISTRATION IE-00 Full-time Nonseasonal
75574 4 SD 0306-GOVERNMENT INFORMATION SPECIALIST GG-14 Full-time Nonseasonal
75624 4 SC 0806-MATERIALS ENGINEERING AD-00 Full-time Nonseasonal
75634 1 SJ 0830-MECHANICAL ENGINEERING EE-00 Full-time Nonseasonal
75813 1 SC 0631-OCCUPATIONAL THERAPIST AD-16 Full-time Seasonal
75845 4 SH 1710-EDUCATION AND VOCATIONAL TRAINING AD-13 Part-time Seasonal
76307 4 SC 0665-SPEECH PATHOLOGY AND AUDIOLOGY AD-14 Full-time Seasonal
76420 4 SH 1710-EDUCATION AND VOCATIONAL TRAINING AD-14 Part-time Nonseasonal
76667 3 SC 0640-HEALTH AID AND TECHNICIAN GS-04 Part-time Seasonal
76735 4 SJ 0610-NURSE AD-11 Intermittent Nonseasonal
76771 3 SC 1710-EDUCATION AND VOCATIONAL TRAINING AD-00 Part-time Seasonal
77484 2 SC 0808-ARCHITECTURE NH-02 Full-time Nonseasonal
77695 3 SJ 7408-FOOD SERVICE WORKING WL-02 Part-time Nonseasonal
77887 1 SF 1101-GENERAL BUSINESS AND INDUSTRY GS-02 Full-time Nonseasonal
77916 1 SJ 1101-GENERAL BUSINESS AND INDUSTRY GS-01 Full-time Nonseasonal
80303 4 SC 0599-FINANCIAL MANAGEMENT STUDENT TRAINEE GS-05 Full-time Seasonal
83224 4 SD 1101-GENERAL BUSINESS AND INDUSTRY AD-02 Full-time Nonseasonal
83250 2 SD 0346-LOGISTICS MANAGEMENT AD-03 Full-time Nonseasonal
83404 1 SA 1799-EDUCATION STUDENT TRAINEE NJ-02 Full-time Nonseasonal
83422 2 SC 0301-MISCELLANEOUS ADMINISTRATION AND PROGRAM NH-04 Intermittent Nonseasonal
83425 2 SD 0896-INDUSTRIAL ENGINEERING AD-12 Full-time Nonseasonal
83442 1 SJ 1701-GENERAL EDUCATION AND TRAINING AD-22 Intermittent Nonseasonal
84642 4 SC 1060-PHOTOGRAPHY GS-12 Part-time Nonseasonal
85721 3 SD 0610-NURSE GL-10 Part-time Nonseasonal
85965 2 SC 1199-BUSINESS AND INDUSTRY STUDENT TRAINEE GL-04 Part-time Nonseasonal
86905 4 SJ 0299-HUMAN RESOURCES MANAGEMENT STUDENT TRAINEE GL-05 Full-time Nonseasonal
... ... ... ... ... ...
138901 2 SC 1550-COMPUTER SCIENCE EG-00 Intermittent Nonseasonal
138906 3 SJ 0018-SAFETY AND OCCUPATIONAL HEALTH MANAGEMENT GS-15 Intermittent Nonseasonal
138918 3 SJ 1520-MATHEMATICS EE-00 Intermittent Nonseasonal
138947 2 SC 1520-MATHEMATICS EG-00 Intermittent Nonseasonal
138988 1 SD 0170-HISTORY AD-04 Full-time Nonseasonal
139029 2 SC 1040-LANGUAGE SPECIALIST GS-07 Part-time Nonseasonal
139618 1 SJ 1550-COMPUTER SCIENCE EF-00 Intermittent Nonseasonal
140156 4 SJ 0020-COMMUNITY PLANNING EE-00 Full-time Nonseasonal
140167 1 SC 1010-EXHIBITS SPECIALIST GS-11 Part-time Nonseasonal
140258 4 SJ 1499-LIBRARY AND ARCHIVES STUDENT TRAINEE GS-02 Part-time Nonseasonal
140910 1 SK 1301-GENERAL PHYSICAL SCIENCE AJ-00 Full-time Nonseasonal
140921 3 SD 0080-SECURITY ADMINISTRATION EG-00 Intermittent Nonseasonal
140948 4 SC 0999-LEGAL OCCUPATIONS STUDENT TRAINEE GG-07 Full-time Nonseasonal
140949 4 SJ 0899-ENGINEERING AND ARCHITECTURE STUDENT TRAINEE GG-05 Full-time Nonseasonal
140981 4 SC 0899-ENGINEERING AND ARCHITECTURE STUDENT TRAINEE GG-05 Full-time Nonseasonal
140984 4 SC 0899-ENGINEERING AND ARCHITECTURE STUDENT TRAINEE GG-09 Full-time Nonseasonal
140987 4 SC 0399-ADMINISTRATION AND OFFICE SUPPORT STUDENT... GG-03 Full-time Nonseasonal
140992 4 SC 0999-LEGAL OCCUPATIONS STUDENT TRAINEE GG-09 Full-time Nonseasonal
141000 4 SJ 0343-MANAGEMENT AND PROGRAM ANALYSIS GG-07 Part-time Nonseasonal
141005 4 SC 0399-ADMINISTRATION AND OFFICE SUPPORT STUDENT... GG-05 Full-time Nonseasonal
141010 4 SC 0399-ADMINISTRATION AND OFFICE SUPPORT STUDENT... GG-07 Full-time Nonseasonal
141027 4 SC 2299-INFORMATION TECHNOLOGY STUDENT TRAINEE GG-07 Full-time Nonseasonal
141029 4 SC 1399-PHYSICAL SCIENCE STUDENT TRAINEE GG-07 Full-time Nonseasonal
141056 2 SD 0482-FISH BIOLOGY GG-15 Full-time Nonseasonal
141057 4 SC 0399-ADMINISTRATION AND OFFICE SUPPORT STUDENT... GG-04 Full-time Nonseasonal
141071 4 SJ 0399-ADMINISTRATION AND OFFICE SUPPORT STUDENT... GG-05 Full-time Nonseasonal
141081 4 SJ 0599-FINANCIAL MANAGEMENT STUDENT TRAINEE GG-05 Part-time Nonseasonal
141100 4 SJ 0599-FINANCIAL MANAGEMENT STUDENT TRAINEE GG-05 Full-time Nonseasonal
141128 3 SJ 0801-GENERAL ENGINEERING GG-15 Intermittent Nonseasonal
141145 2 SJ 0399-ADMINISTRATION AND OFFICE SUPPORT STUDENT... GG-05 Full-time Nonseasonal
141150 1 SJ 2299-INFORMATION TECHNOLOGY STUDENT TRAINEE GG-09 Full-time Nonseasonal
141153 3 SD 1301-GENERAL PHYSICAL SCIENCE GG-15 Part-time Nonseasonal
141852 3 SD 1811-CRIMINAL INVESTIGATION IE-00 Full-time Nonseasonal
141986 2 SD 0332-COMPUTER OPERATION NC-03 Full-time Nonseasonal
141991 3 SC 0899-ENGINEERING AND ARCHITECTURE STUDENT TRAINEE NR-01 Full-time Nonseasonal
142033 2 SA 2091-SALES STORE CLERICAL NC-01 Full-time Nonseasonal
142047 1 SD 0690-INDUSTRIAL HYGIENE NO-04 Full-time Nonseasonal
142061 3 SC 0999-LEGAL OCCUPATIONS STUDENT TRAINEE NC-01 Full-time Nonseasonal
142069 4 SC 1399-PHYSICAL SCIENCE STUDENT TRAINEE NP-01 Full-time Nonseasonal
142072 4 SJ 0855-ELECTRONICS ENGINEERING NP-03 Intermittent Nonseasonal
142075 3 SC 0899-ENGINEERING AND ARCHITECTURE STUDENT TRAINEE NR-01 Part-time Nonseasonal
142111 2 SA 0809-CONSTRUCTION CONTROL TECHNICAL NR-03 Full-time Nonseasonal
142119 4 SC 1310-PHYSICS NP-04 Part-time Nonseasonal
142154 3 SC 0899-ENGINEERING AND ARCHITECTURE STUDENT TRAINEE NP-02 Part-time Nonseasonal
142163 1 SJ 1411-LIBRARY TECHNICIAN NC-01 Full-time Nonseasonal
142168 2 SC 0086-SECURITY CLERICAL AND ASSISTANCE NC-01 Full-time Nonseasonal
142203 1 SJ 1399-PHYSICAL SCIENCE STUDENT TRAINEE NR-02 Part-time Nonseasonal
143128 2 SC 0638-RECREATION/CREATIVE ARTS THERAPIST GS-11 Part-time Nonseasonal
143264 1 SD 6901-MISC WAREHOUSING AND STOCK HANDLING WG-03 Part-time Nonseasonal
143491 4 SC 0895-INDUSTRIAL ENGINEERING TECHNICAL GS-04 Full-time Nonseasonal
143699 3 SJ 2210-INFORMATION TECHNOLOGY MANAGEMENT DS-01 Full-time Nonseasonal
143939 3 SK 1311-PHYSICAL SCIENCE TECHNICIAN DT-04 Part-time Nonseasonal
144126 4 SC 0801-GENERAL ENGINEERING DP-05 Part-time Nonseasonal
144158 2 SC 0830-MECHANICAL ENGINEERING NM-03 Full-time Nonseasonal
144164 2 SA 1103-INDUSTRIAL PROPERTY MANAGEMENT DA-04 Full-time Nonseasonal
144282 3 SJ 2299-INFORMATION TECHNOLOGY STUDENT TRAINEE DS-01 Full-time Nonseasonal
144314 3 SJ 0899-ENGINEERING AND ARCHITECTURE STUDENT TRAINEE DP-03 Full-time Nonseasonal
144465 3 SC 1199-BUSINESS AND INDUSTRY STUDENT TRAINEE DG-01 Full-time Nonseasonal
144579 2 SC 1320-CHEMISTRY DP-02 Part-time Nonseasonal
144679 3 SD 0303-MISCELLANEOUS CLERK AND ASSISTANT DG-06 Full-time Nonseasonal
144866 1 SC 0899-ENGINEERING AND ARCHITECTURE STUDENT TRAINEE DT-01 Part-time Nonseasonal
144902 4 SJ 1710-EDUCATION AND VOCATIONAL TRAINING AD-01 Part-time Nonseasonal
145001 4 SJ 1710-EDUCATION AND VOCATIONAL TRAINING AD-03 Part-time Nonseasonal
145028 3 SC 1710-EDUCATION AND VOCATIONAL TRAINING AD-01 Full-time Seasonal
145194 1 SC 0006-CORRECTIONAL INSTITUTION ADMINISTRATION GS-13 Part-time Nonseasonal
146139 1 SD 6641-ORDNANCE EQUIPMENT MECHANIC WG-12 Full-time Nonseasonal
146276 2 SD 1515-OPERATIONS RESEARCH ND-05 Part-time Nonseasonal
146408 4 SJ 0899-ENGINEERING AND ARCHITECTURE STUDENT TRAINEE GS-04 Full-time Seasonal
146441 4 SC 0899-ENGINEERING AND ARCHITECTURE STUDENT TRAINEE NT-01 Full-time Nonseasonal
146517 4 SC 0899-ENGINEERING AND ARCHITECTURE STUDENT TRAINEE GS-04 Full-time Seasonal
146526 3 SD 4301-MISCELLANEOUS PLIABLE MATERIALS WORK WG-11 Full-time Nonseasonal
146559 2 SC 0415-TOXICOLOGY ND-04 Part-time Nonseasonal
146714 4 SK 1102-CONTRACTING NT-05 Part-time Nonseasonal
146905 4 SC 1222-PATENT ATTORNEY NT-05 Full-time Nonseasonal
146968 2 SC 1515-OPERATIONS RESEARCH ND-05 Part-time Nonseasonal
147275 3 SD 1521-MATHEMATICS TECHNICIAN GS-12 Full-time Nonseasonal
147378 4 SF 3414-MACHINING WG-04 Full-time Nonseasonal
147609 2 SD 5876-ELECTROMOTIVE EQUIPMENT MECHANIC WG-11 Full-time Nonseasonal
148473 3 SC 0804-FIRE PROTECTION ENGINEERING GS-13 Part-time Nonseasonal
148595 3 SD 5407-ELECTRICAL POWER CONTROLLING WS-11 Full-time Nonseasonal
148604 4 SA 0021-COMMUNITY PLANNING TECHNICIAN GS-04 Full-time Nonseasonal
149482 2 SI 5409-WATER TREATMENT PLANT OPERATING WS-11 Full-time Nonseasonal
149539 4 SA 0399-ADMINISTRATION AND OFFICE SUPPORT STUDENT... GG-07 Full-time Nonseasonal
149587 4 SC 0899-ENGINEERING AND ARCHITECTURE STUDENT TRAINEE GS-03 Full-time Seasonal
149648 4 SD 1082-WRITING AND EDITING GS-08 Full-time Nonseasonal
149876 3 SD 5413-FUEL DISTRIBUTION SYSTEM OPERATING WL-09 Full-time Nonseasonal
150646 3 SJ 0801-GENERAL ENGINEERING EE-00 Full-time Nonseasonal
150728 1 SJ 9936-ENGINE MIDSHIPMAN WM-21 Full-time Nonseasonal
150901 1 SJ 9917-DECK MIDSHIPMAN WM-21 Full-time Nonseasonal
151029 2 SJ 9917-DECK MIDSHIPMAN WM-21 Full-time Nonseasonal
151039 2 SJ 9936-ENGINE MIDSHIPMAN WM-21 Full-time Nonseasonal
151282 1 SD 2131-FREIGHT RATE NG-03 Full-time Nonseasonal
151366 1 SA 0260-EQUAL EMPLOYMENT OPPORTUNITY DP-04 Full-time Nonseasonal
151369 1 SI 0361-EQUAL OPPORTUNITY ASSISTANCE NG-02 Full-time Nonseasonal
151387 3 SC 2299-INFORMATION TECHNOLOGY STUDENT TRAINEE NO-03 Full-time Nonseasonal
151397 4 SC 1199-BUSINESS AND INDUSTRY STUDENT TRAINEE NG-01 Part-time Nonseasonal
151625 3 SD 0510-ACCOUNTING NO-06 Full-time Nonseasonal
153743 2 SD 4373-MOLDING WD-06 Full-time Nonseasonal
154266 1 SD 3802-METAL FORGING WL-10 Full-time Nonseasonal
154284 3 SC 3359-INSTRUMENT MECHANIC WG-01 Full-time Seasonal
154346 3 SC 0871-NAVAL ARCHITECTURE GS-12 Part-time Nonseasonal
154627 3 SC 3801-MISCELLANEOUS METAL WORK WG-03 Full-time Seasonal
154637 3 SA 3806-SHEET METAL MECHANIC WG-05 Full-time Seasonal
155027 2 SD 3401-MISCELLANEOUS MACHINE TOOL WORK WS-15 Full-time Nonseasonal
155347 1 SC 3414-MACHINING WG-08 Full-time Seasonal
156304 3 SC 0086-SECURITY CLERICAL AND ASSISTANCE FP-06 Full-time Nonseasonal
156307 4 SD 2130-TRAFFIC MANAGEMENT FP-02 Full-time Nonseasonal
156310 4 SC 1087-EDITORIAL ASSISTANCE FP-07 Full-time Nonseasonal
156321 2 SA 0905-GENERAL ATTORNEY FP-04 Full-time Nonseasonal
156355 3 SA 0510-ACCOUNTING FP-03 Full-time Nonseasonal
156360 2 SI 0303-MISCELLANEOUS CLERK AND ASSISTANT FP-07 Part-time Nonseasonal
156361 3 SC 0303-MISCELLANEOUS CLERK AND ASSISTANT FP-09 Part-time Nonseasonal
156368 4 SC 0669-MEDICAL RECORDS ADMINISTRATION FP-05 Full-time Nonseasonal
156374 2 SJ 0303-MISCELLANEOUS CLERK AND ASSISTANT FP-08 Full-time Nonseasonal
156382 4 SC 1702-EDUCATION AND TRAINING TECHNICIAN FP-06 Full-time Nonseasonal
156448 2 SC 0303-MISCELLANEOUS CLERK AND ASSISTANT FP-08 Full-time Nonseasonal
156454 1 SC 1750-INSTRUCTIONAL SYSTEMS FP-04 Full-time Nonseasonal
156479 4 SA 0260-EQUAL EMPLOYMENT OPPORTUNITY FP-04 Full-time Nonseasonal
156484 1 SA 0201-HUMAN RESOURCES MANAGEMENT FP-02 Part-time Nonseasonal
157610 4 SC 2210-INFORMATION TECHNOLOGY MANAGEMENT SK-16 Part-time Nonseasonal
157665 2 SD 1410-LIBRARIAN SK-15 Full-time Nonseasonal
157751 4 SC 0201-HUMAN RESOURCES MANAGEMENT SK-13 Part-time Nonseasonal
157761 4 SC 1499-LIBRARY AND ARCHIVES STUDENT TRAINEE SK-07 Full-time Nonseasonal
157764 4 SD 0340-PROGRAM MANAGEMENT SK-16 Full-time Nonseasonal
157782 1 SJ 0950-PARALEGAL SPECIALIST SK-07 Full-time Nonseasonal
157790 2 SC 1750-INSTRUCTIONAL SYSTEMS SK-16 Full-time Nonseasonal
157794 2 SC 1410-LIBRARIAN SK-09 Full-time Nonseasonal
157795 3 SI 0080-SECURITY ADMINISTRATION SK-17 Full-time Nonseasonal
157798 2 SK 0201-HUMAN RESOURCES MANAGEMENT SK-14 Part-time Nonseasonal
157823 3 SC 2210-INFORMATION TECHNOLOGY MANAGEMENT SO-01 Full-time Nonseasonal
157834 4 SJ 0501-FINANCIAL ADMINISTRATION AND PROGRAM SK-13 Part-time Nonseasonal
158130 3 SC 0804-FIRE PROTECTION ENGINEERING GS-07 Full-time Nonseasonal
158187 2 SC 5701-MISC TRANSPORTATION/MOBILE EQUIPMENT OPER WL-02 Full-time Nonseasonal
158375 1 SF 0356-DATA TRANSCRIBER GS-07 Full-time Nonseasonal
158552 3 SJ 0130-FOREIGN AFFAIRS GS-15 Intermittent Nonseasonal
158577 3 SC 0130-FOREIGN AFFAIRS AD-00 Full-time Nonseasonal
158579 3 SJ 2032-PACKAGING GS-12 Intermittent Nonseasonal
158583 3 SA 0130-FOREIGN AFFAIRS GG-14 Full-time Nonseasonal
158587 3 SC 0130-FOREIGN AFFAIRS EF-15 Intermittent Nonseasonal
158599 3 SJ 0130-FOREIGN AFFAIRS EF-14 Intermittent Nonseasonal
158622 3 SJ 0080-SECURITY ADMINISTRATION GS-14 Intermittent Nonseasonal
158654 3 SJ 0130-FOREIGN AFFAIRS GS-14 Intermittent Nonseasonal
158692 2 SJ 0318-SECRETARY GS-10 Intermittent Nonseasonal
158775 2 SD 1008-INTERIOR DESIGN GS-15 Full-time Nonseasonal
158847 3 SJ 0391-TELECOMMUNICATIONS GS-11 Intermittent Nonseasonal
158884 3 SD 0150-GEOGRAPHY ES-** Full-time Nonseasonal
158987 2 SD 0132-INTELLIGENCE GM-13 Full-time Nonseasonal
159027 3 SC 0130-FOREIGN AFFAIRS GS-14 Intermittent Nonseasonal
159029 3 SC 1109-GRANTS MANAGEMENT AD-05 Full-time Nonseasonal
159042 3 SJ 1035-PUBLIC AFFAIRS AD-05 Full-time Nonseasonal
159044 3 SC 0306-GOVERNMENT INFORMATION SPECIALIST GS-09 Part-time Nonseasonal
159045 3 SJ 0130-FOREIGN AFFAIRS EF-15 Intermittent Nonseasonal
159103 3 SC 0130-FOREIGN AFFAIRS ED-15 Intermittent Nonseasonal
159147 3 SK 0130-FOREIGN AFFAIRS GS-14 Intermittent Nonseasonal
159217 1 SC 0130-FOREIGN AFFAIRS EF-15 Full-time Nonseasonal
159782 3 SC 0905-GENERAL ATTORNEY AA-06 Intermittent Nonseasonal
159803 2 SJ 0901-GENERAL LEGAL AND KINDRED ADMINISTRATION GS-09 Intermittent Nonseasonal
160700 3 SC 0260-EQUAL EMPLOYMENT OPPORTUNITY GS-15 Intermittent Nonseasonal
160723 3 SJ 0905-GENERAL ATTORNEY GS-12 Intermittent Nonseasonal
161612 2 SC 0998-CLAIMS ASSISTANCE AND EXAMINING GS-07 Intermittent Nonseasonal
164022 2 SI 0105-SOCIAL INSURANCE ADMINISTRATION GS-06 Full-time Nonseasonal
164528 1 SD 0160-CIVIL RIGHTS ANALYSIS ES-** Full-time Nonseasonal
164537 3 SC 0020-COMMUNITY PLANNING GS-12 Intermittent Nonseasonal
164593 3 SC 1499-LIBRARY AND ARCHIVES STUDENT TRAINEE GS-07 Part-time Nonseasonal
164751 3 SC 0301-MISCELLANEOUS ADMINISTRATION AND PROGRAM FJ-00 Full-time Nonseasonal
165005 3 SD 0413-PHYSIOLOGY FV-J Full-time Nonseasonal
165047 4 SD 1825-AVIATION SAFETY EV-02 Full-time Nonseasonal
165056 1 SD 0346-LOGISTICS MANAGEMENT FV-G Part-time Nonseasonal
165207 4 SI 0861-AEROSPACE ENGINEERING FG-13 Full-time Nonseasonal
165242 3 SD 1071-AUDIOVISUAL PRODUCTION FV-G Full-time Nonseasonal
165440 4 SD 0601-GENERAL HEALTH SCIENCE FV-G Full-time Nonseasonal
165681 4 SC 0401-GENERAL NATURAL RESOURCES MANAGEMENT AND ... FV-G Full-time Nonseasonal
165694 4 SK 0343-MANAGEMENT AND PROGRAM ANALYSIS FG-15 Full-time Nonseasonal
165819 3 SC 0343-MANAGEMENT AND PROGRAM ANALYSIS FG-07 Full-time Nonseasonal
166216 2 SJ 0899-ENGINEERING AND ARCHITECTURE STUDENT TRAINEE FV-C Part-time Nonseasonal
166649 2 SD 0401-GENERAL NATURAL RESOURCES MANAGEMENT AND ... FV-I Full-time Nonseasonal
167164 3 SD 2010-INVENTORY MANAGEMENT FG-09 Full-time Nonseasonal
167232 1 SC 0675-MEDICAL RECORDS TECHNICIAN FV-G Full-time Nonseasonal
167765 4 SA 0810-CIVIL ENGINEERING GS-07 Full-time Seasonal
167983 4 SC 0090-GUIDE GS-01 Full-time Nonseasonal
167984 4 SJ 0090-GUIDE GS-01 Full-time Nonseasonal
167990 3 SD 5786-SMALL CRAFT OPERATING WL-12 Full-time Seasonal
168609 1 SA 1520-MATHEMATICS OR-51 Full-time Nonseasonal
169045 4 SC 0356-DATA TRANSCRIBER GS-03 Full-time Seasonal
169402 4 SJ 0356-DATA TRANSCRIBER GS-03 Part-time Nonseasonal
169897 3 SD 0341-ADMINISTRATIVE OFFICER IR-SM Full-time Nonseasonal
170587 3 SJ 0303-MISCELLANEOUS CLERK AND ASSISTANT GS-02 Full-time Seasonal
170682 4 SA 0501-FINANCIAL ADMINISTRATION AND PROGRAM GS-05 Full-time Seasonal
171044 3 SC 0303-MISCELLANEOUS CLERK AND ASSISTANT GS-02 Full-time Seasonal
172568 3 SJ 2005-SUPPLY CLERICAL AND TECHNICIAN GS-04 Intermittent Nonseasonal
172848 1 SI 0356-DATA TRANSCRIBER GS-03 Full-time Seasonal
173512 2 SD 1101-GENERAL BUSINESS AND INDUSTRY GS-09 Part-time Job Sharer Nonseasonal
174326 4 SC 0592-TAX EXAMINING GS-05 Part-time Seasonal
175009 2 SD 1397-DOCUMENT ANALYSIS IR-FM Full-time Nonseasonal
175175 2 SC 0399-ADMINISTRATION AND OFFICE SUPPORT STUDENT... GS-06 Full-time Seasonal
176572 3 SC 0501-FINANCIAL ADMINISTRATION AND PROGRAM GS-09 Part-time Seasonal
176724 4 SC 0356-DATA TRANSCRIBER GS-02 Full-time Seasonal
177579 1 SJ 0512-INTERNAL REVENUE AGENT GS-13 Intermittent Nonseasonal
178189 1 SC 0356-DATA TRANSCRIBER GS-02 Full-time Seasonal
178500 4 SI 3869-METAL FORMING MACHINE OPERATING WG-06 Intermittent Nonseasonal
178757 1 SD 0511-AUDITING NB-07 Full-time Nonseasonal
178763 4 SC 0399-ADMINISTRATION AND OFFICE SUPPORT STUDENT... NB-03 Full-time Nonseasonal
178811 3 SC 1160-FINANCIAL ANALYSIS NB-06 Part-time Nonseasonal
178820 4 SC 0110-ECONOMIST NB-06 Part-time Nonseasonal
178862 1 SD 0986-LEGAL ASSISTANCE NB-04 Full-time Nonseasonal
178979 1 SA 0303-MISCELLANEOUS CLERK AND ASSISTANT NB-02 Part-time Nonseasonal
179028 1 SC 0570-FINANCIAL INSTITUTION EXAMINING NB-06 Intermittent Nonseasonal
179323 4 SC 0511-AUDITING ES-** Intermittent Nonseasonal
180727 4 SC 0996-VETERANS CLAIMS EXAMINING GS-10 Part-time Nonseasonal
182096 1 SJ 0503-FINANCIAL CLERICAL AND ASSISTANCE GS-06 Intermittent Nonseasonal
182785 1 SJ 0621-NURSING ASSISTANT AD-00 Full-time Nonseasonal
183419 1 SJ 4102-PAINTING WB-00 Intermittent Nonseasonal
184918 1 SC 0661-PHARMACY TECHNICIAN GS-02 Intermittent Nonseasonal
185606 1 SC 0187-SOCIAL SERVICES GS-07 Intermittent Nonseasonal
185612 1 SC 7305-LAUNDRY MACHINE OPERATING WL-04 Full-time Nonseasonal
185619 4 SI 0102-SOCIAL SCIENCE AID AND TECHNICIAN GS-02 Part-time Nonseasonal
186470 3 SI 0661-PHARMACY TECHNICIAN GS-02 Part-time Nonseasonal
187280 2 SC 0625-AUTOPSY ASSISTANT GS-04 Intermittent Nonseasonal
188209 3 SC 7305-LAUNDRY MACHINE OPERATING WG-04 Part-time Nonseasonal
188290 3 SC 0083-POLICE GS-07 Intermittent Nonseasonal
189645 1 SD 1601-EQUIPMENT FACILITIES, AND SERVICES GS-11 Intermittent Nonseasonal
190784 3 SC 0180-PSYCHOLOGY AD-00 Intermittent Nonseasonal
191199 3 SJ 0199-SOCIAL SCIENCE STUDENT TRAINEE AD-00 Part-time Nonseasonal
193872 4 SJ 0185-SOCIAL WORK GS-02 Intermittent Nonseasonal
194936 2 SJ 1199-BUSINESS AND INDUSTRY STUDENT TRAINEE GS-02 Intermittent Nonseasonal
195894 1 SJ 0401-GENERAL NATURAL RESOURCES MANAGEMENT AND ... GS-10 Intermittent Nonseasonal
195895 1 SC 0299-HUMAN RESOURCES MANAGEMENT STUDENT TRAINEE GS-09 Part-time Nonseasonal
196227 4 SD 7301-MISC LAUNDRY, DRY CLEANING, AND PRESSING WS-08 Full-time Nonseasonal
196320 2 SC 0681-DENTAL ASSISTANT GS-08 Part-time Nonseasonal
196786 1 SC 0683-DENTAL LABORATORY AID AND TECHNICIAN GS-05 Part-time Nonseasonal
198299 4 SC 0699-MEDICAL AND HEALTH STUDENT TRAINEE GS-02 Full-time Nonseasonal
198505 4 SC 0530-CASH PROCESSING GS-05 Part-time Nonseasonal
199799 4 SC 0181-PSYCHOLOGY AID AND TECHNICIAN GS-04 Intermittent Nonseasonal
200273 2 SJ 0335-COMPUTER CLERK AND ASSISTANT GS-03 Intermittent Nonseasonal
200845 4 SJ 0525-ACCOUNTING TECHNICIAN GS-04 Intermittent Nonseasonal
201133 1 SC 7404-COOKING WG-07 Full-time Nonseasonal
201186 1 SD 0639-EDUCATIONAL THERAPIST GS-09 Full-time Nonseasonal
202022 4 SJ 0601-GENERAL HEALTH SCIENCE GS-05 Intermittent Nonseasonal
202948 2 SD 0637-MANUAL ARTS THERAPIST GS-11 Full-time Nonseasonal
203694 2 SC 0530-CASH PROCESSING VC-02 Intermittent Nonseasonal
203728 2 SC 5703-MOTOR VEHICLE OPERATING WG-02 Part-time Nonseasonal
203929 3 SC 0669-MEDICAL RECORDS ADMINISTRATION GS-11 Intermittent Nonseasonal
204060 2 SD 6901-MISC WAREHOUSING AND STOCK HANDLING WD-07 Full-time Nonseasonal
204563 2 SJ 0644-MEDICAL TECHNOLOGIST GS-07 Intermittent Nonseasonal
206370 1 SJ 0670-HEALTH SYSTEM ADMINISTRATION AD-00 Intermittent Nonseasonal
207091 1 SJ 0605-NURSE ANESTHETIST (TITLE 38) AD-00 Part-time Nonseasonal
210811 3 SD 4010-PRESCRIPTION EYEGLASS MAKING WL-09 Full-time Nonseasonal
211162 3 SC 0699-MEDICAL AND HEALTH STUDENT TRAINEE GS-06 Full-time Nonseasonal
211308 1 SC 0645-MEDICAL TECHNICIAN GS-01 Intermittent Nonseasonal
214123 1 SI 5406-UTILITY SYSTEMS OPERATING WS-12 Full-time Nonseasonal

853 rows × 5 columns

These 1293 separation observations do not have coverage within the EMP Dataset, thus, we will remove these observations as out of scope demographic in our analysis. Any attempt in predicting these values will not have enough data to support a significant response.

In [14]:
OPMDataMerged = OPMDataMerged[OPMDataMerged["IndAvgSalary"].notnull()]

print(len(OPMDataMerged[OPMDataMerged["IndAvgSalary"].isnull()]))

print(len(OPMDataMerged))
0
8170907


Placeholder Chunks for Data Quality check of salary against GS Grade Level Ranges



In [15]:
# Placeholder Chunks for Data Quality check of salary against GS Grade Level Ranges
In [ ]:
 

We are iterested to see how federal pension plans may impact attrition in this dataset. An interesting attribute to complement Length of service, is Years to Retirement. Utilizing a FERS retirement eligibility baseline of 57 years of age for all observations, and the lower limitation of age level ranges we compute a numeric value for length of retirement.

In [16]:
#Add Column YearsToRetirement

"""
    AGELVL,AGELVLT
    A,Less than 20
    B,20-24
    C,25-29
    D,30-34
    E,35-39
    F,40-44
    G,45-49
    H,50-54
    I,55-59
    J,60-64
    K,65 or more
    Z,Unspecified
"""
OPMDataMerged["LowerLimitAge"] = np.where(OPMDataMerged["AGELVL"]=="B", 20,
                                                np.where(OPMDataMerged["AGELVL"]=="C", 25,
                                                         np.where(OPMDataMerged["AGELVL"]=="D", 30,
                                                                  np.where(OPMDataMerged["AGELVL"]=="E", 35,
                                                                           np.where(OPMDataMerged["AGELVL"]=="F", 40,
                                                                                    np.where(OPMDataMerged["AGELVL"]=="G", 45,
                                                                                             np.where(OPMDataMerged["AGELVL"]=="H", 50,
                                                                                                      np.where(OPMDataMerged["AGELVL"]=="I", 55,
                                                                                                               np.where(OPMDataMerged["AGELVL"]=="J", 60,
                                                                                                                        np.where(OPMDataMerged["AGELVL"]=="K", 65,
                                                                                                                                 np.nan
                                                                                                                                )
                                                                                                                        )
                                                                                                               )
                                                                                                      )
                                                                                            )
                                                                                   )
                                                                          )
                                                                 )
                                                        )
                                               )  

retAge = 57

OPMDataMerged["YearsToRetirement"] = np.where(OPMDataMerged["AGELVL"]=="B", retAge-20,
                                                np.where(OPMDataMerged["AGELVL"]=="C", retAge-25,
                                                         np.where(OPMDataMerged["AGELVL"]=="D", retAge-30,
                                                                  np.where(OPMDataMerged["AGELVL"]=="E", retAge-35,
                                                                           np.where(OPMDataMerged["AGELVL"]=="F", retAge-40,
                                                                                    np.where(OPMDataMerged["AGELVL"]=="G", retAge-45,
                                                                                             np.where(OPMDataMerged["AGELVL"]=="H", retAge-50,
                                                                                                      np.where(OPMDataMerged["AGELVL"]=="I", retAge-55,
                                                                                                               np.where(OPMDataMerged["AGELVL"]=="J", retAge-60,
                                                                                                                        np.where(OPMDataMerged["AGELVL"]=="K", retAge-65,
                                                                                                                                 np.nan
                                                                                                                                )
                                                                                                                        )
                                                                                                               )
                                                                                                      )
                                                                                            )
                                                                                   )
                                                                          )
                                                                 )
                                                        )
                                               )  

print("Null Values for LowerLimitAge: " + str(len(OPMDataMerged[OPMDataMerged["LowerLimitAge"].isnull()])))
print("Null Values for YearsToRetirement: " + str(len(OPMDataMerged[OPMDataMerged["YearsToRetirement"].isnull()])))

display(OPMDataMerged.head())
display(OPMDataMerged.tail())
Null Values for LowerLimitAge: 0
Null Values for YearsToRetirement: 0
AGYSUB SEP DATECODE AGELVL GENDER GSEGRD LOSLVL LOC OCC PATCO PPGRD SALLVL TOA WORKSCH COUNT SALARY LOS AGYTYP AGYTYPT AGY AGYT AGYSUBT QTR AGELVLT LOSLVLT LOCTYP LOCTYPT LOCT OCCTYP OCCTYPT OCCFAM OCCFAMT OCCT PATCOT PPTYP PPTYPT PPGROUP PPGROUPT PAYPLAN PAYPLANT SALLVLT TOATYP TOATYPT TOAT WSTYP WSTYPT WORKSCHT SEPCount_EFDATE_OCC SEPCount_EFDATE_LOC IndAvgSalary SalaryOverUnderIndAvg LowerLimitAge YearsToRetirement
0 AA00 SC 201507 C M 11 A 11 0905 1 GS-11 F 40 F 1.0 63722.0 0.8 4 Small Independent Agencies (less than 100 empl... AA AA-ADMINISTRATIVE CONFERENCE OF THE UNITED STATES AA00-ADMINISTRATIVE CONFERENCE OF THE UNITED S... 4 25-29 Less than 1 year 1 United States 11-DISTRICT OF COLUMBIA 1 White Collar 09 09xx-LEGAL AND KINDRED 0905-GENERAL ATTORNEY Professional 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans GS GS-GENERAL SCHEDULE $60,000 - $69,999 2 Non-permanent 40-Excepted Service - Schedule A 1 Full-time Full-time Nonseasonal 205.0 1319 64540.593830 -818.593830 25.0 32.0
1 AA00 SC 201506 D F 15 C 11 0905 1 GS-15 L 30 F 1.0 126245.0 4.8 4 Small Independent Agencies (less than 100 empl... AA AA-ADMINISTRATIVE CONFERENCE OF THE UNITED STATES AA00-ADMINISTRATIVE CONFERENCE OF THE UNITED S... 3 30-34 3 - 4 years 1 United States 11-DISTRICT OF COLUMBIA 1 White Collar 09 09xx-LEGAL AND KINDRED 0905-GENERAL ATTORNEY Professional 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans GS GS-GENERAL SCHEDULE $120,000 - $129,999 1 Permanent 30-Excepted Service - Schedule A 1 Full-time Full-time Nonseasonal 207.0 1132 149864.298504 -23619.298504 30.0 27.0
2 AF** SA 201503 H M 11 C 48 2210 2 GS-11 F 10 F 1.0 66585.0 4.9 1 Cabinet Level Agencies AF AF-DEPARTMENT OF THE AIR FORCE AF**-INVALID 2 50-54 3 - 4 years 1 United States 48-TEXAS 1 White Collar 22 22xx-INFORMATION TECHNOLOGY 2210-INFORMATION TECHNOLOGY MANAGEMENT Administrative 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans GS GS-GENERAL SCHEDULE $60,000 - $69,999 1 Permanent 10-Competitive Service - Career 1 Full-time Full-time Nonseasonal 439.0 1087 71530.963755 -4945.963755 50.0 7.0
3 AF02 SD 201506 I M 15 J 35 0301 2 GS-15 O 10 F 1.0 156737.0 39.8 1 Cabinet Level Agencies AF AF-DEPARTMENT OF THE AIR FORCE AF02-AIR FORCE INSPECTION AGENCY (FO) 3 55-59 35 years or more 1 United States 35-NEW MEXICO 1 White Collar 03 03xx-GENERAL ADMIN, CLERICAL, & OFFICE SVCS 0301-MISCELLANEOUS ADMINISTRATION AND PROGRAM Administrative 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans GS GS-GENERAL SCHEDULE $150,000 - $159,999 1 Permanent 10-Competitive Service - Career 1 Full-time Full-time Nonseasonal 670.0 265 146735.220304 10001.779696 55.0 2.0
4 AF03 SC 201509 H M 13 B 06 0301 2 GS-13 I 15 F 1.0 92973.0 1.0 1 Cabinet Level Agencies AF AF-DEPARTMENT OF THE AIR FORCE AF03-AIR FORCE OPERATIONAL TEST AND EVALUATION... 4 50-54 1 - 2 years 1 United States 06-CALIFORNIA 1 White Collar 03 03xx-GENERAL ADMIN, CLERICAL, & OFFICE SVCS 0301-MISCELLANEOUS ADMINISTRATION AND PROGRAM Administrative 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans GS GS-GENERAL SCHEDULE $90,000 - $99,999 1 Permanent 15-Competitive Service - Career-Conditional 1 Full-time Full-time Nonseasonal 721.0 1853 101641.124025 -8668.124025 50.0 7.0
AGYSUB SEP DATECODE AGELVL GENDER GSEGRD LOSLVL LOC OCC PATCO PPGRD SALLVL TOA WORKSCH COUNT SALARY LOS AGYTYP AGYTYPT AGY AGYT AGYSUBT QTR AGELVLT LOSLVLT LOCTYP LOCTYPT LOCT OCCTYP OCCTYPT OCCFAM OCCFAMT OCCT PATCOT PPTYP PPTYPT PPGROUP PPGROUPT PAYPLAN PAYPLANT SALLVLT TOATYP TOATYPT TOAT WSTYP WSTYPT WORKSCHT SEPCount_EFDATE_OCC SEPCount_EFDATE_LOC IndAvgSalary SalaryOverUnderIndAvg LowerLimitAge YearsToRetirement
8223188 ZU00 NS 201509 D NaN NaN C 11 0301 2 AD-00 G 48 F NaN 76377.0 4.8 4 Small Independent Agencies (less than 100 empl... ZU ZU-DWIGHT D. EISENHOWER MEMORIAL COMMISSION ZU00-DWIGHT D. EISENHOWER MEMORIAL COMMISSION 4 30-34 3 - 4 years 1 United States 11-DISTRICT OF COLUMBIA 1 White Collar 03 03xx-GENERAL ADMIN, CLERICAL, & OFFICE SVCS 0301-MISCELLANEOUS ADMINISTRATION AND PROGRAM Administrative 3 Other White Collar Pay Plans 31 Governmentwide or Multi-Agency Plans AD AD-ADMINISTRATIVELY DETERMINED RATES, NOT ELSE... $70,000 - $79,999 2 Non-permanent 48-Excepted Service - Other 1 Full-time Full-time Nonseasonal 721.0 1391 115840.182250 -39463.182250 30.0 27.0
8223189 ZU00 NS 201509 K NaN NaN D 11 0301 2 AD-00 M 48 F NaN 139517.0 7.0 4 Small Independent Agencies (less than 100 empl... ZU ZU-DWIGHT D. EISENHOWER MEMORIAL COMMISSION ZU00-DWIGHT D. EISENHOWER MEMORIAL COMMISSION 4 65 or more 5 - 9 years 1 United States 11-DISTRICT OF COLUMBIA 1 White Collar 03 03xx-GENERAL ADMIN, CLERICAL, & OFFICE SVCS 0301-MISCELLANEOUS ADMINISTRATION AND PROGRAM Administrative 3 Other White Collar Pay Plans 31 Governmentwide or Multi-Agency Plans AD AD-ADMINISTRATIVELY DETERMINED RATES, NOT ELSE... $130,000 - $139,999 2 Non-permanent 48-Excepted Service - Other 1 Full-time Full-time Nonseasonal 721.0 1391 115840.182250 23676.817750 65.0 -8.0
8223190 ZU00 NS 201509 K NaN NaN D 11 0301 2 AD-00 O 48 F NaN 158671.0 7.0 4 Small Independent Agencies (less than 100 empl... ZU ZU-DWIGHT D. EISENHOWER MEMORIAL COMMISSION ZU00-DWIGHT D. EISENHOWER MEMORIAL COMMISSION 4 65 or more 5 - 9 years 1 United States 11-DISTRICT OF COLUMBIA 1 White Collar 03 03xx-GENERAL ADMIN, CLERICAL, & OFFICE SVCS 0301-MISCELLANEOUS ADMINISTRATION AND PROGRAM Administrative 3 Other White Collar Pay Plans 31 Governmentwide or Multi-Agency Plans AD AD-ADMINISTRATIVELY DETERMINED RATES, NOT ELSE... $150,000 - $159,999 2 Non-permanent 48-Excepted Service - Other 1 Full-time Full-time Nonseasonal 721.0 1391 115840.182250 42830.817750 65.0 -8.0
8223191 ZU00 NS 201509 B NaN NaN B 11 0301 2 AD-00 C 48 F NaN 36244.0 1.6 4 Small Independent Agencies (less than 100 empl... ZU ZU-DWIGHT D. EISENHOWER MEMORIAL COMMISSION ZU00-DWIGHT D. EISENHOWER MEMORIAL COMMISSION 4 20-24 1 - 2 years 1 United States 11-DISTRICT OF COLUMBIA 1 White Collar 03 03xx-GENERAL ADMIN, CLERICAL, & OFFICE SVCS 0301-MISCELLANEOUS ADMINISTRATION AND PROGRAM Administrative 3 Other White Collar Pay Plans 31 Governmentwide or Multi-Agency Plans AD AD-ADMINISTRATIVELY DETERMINED RATES, NOT ELSE... $30,000 - $39,999 2 Non-permanent 48-Excepted Service - Other 1 Full-time Full-time Nonseasonal 721.0 1391 115840.182250 -79596.182250 20.0 37.0
8223192 ZU00 NS 201509 E NaN NaN D 11 0505 2 AD-00 I 48 F NaN 99288.0 5.0 4 Small Independent Agencies (less than 100 empl... ZU ZU-DWIGHT D. EISENHOWER MEMORIAL COMMISSION ZU00-DWIGHT D. EISENHOWER MEMORIAL COMMISSION 4 35-39 5 - 9 years 1 United States 11-DISTRICT OF COLUMBIA 1 White Collar 05 05xx-ACCOUNTING AND BUDGET 0505-FINANCIAL MANAGEMENT Administrative 3 Other White Collar Pay Plans 31 Governmentwide or Multi-Agency Plans AD AD-ADMINISTRATIVELY DETERMINED RATES, NOT ELSE... $90,000 - $99,999 2 Non-permanent 48-Excepted Service - Other 1 Full-time Full-time Nonseasonal 7.0 1391 148382.833333 -49094.833333 35.0 22.0

Pull Bureau of Labor Statistics data

In addition to the OPM data, we merge 10 attributes from the Bureau of Labor Statistics (BLS). Data is sourced from Federal Government industry codes across all regions. Although assumed to be highly correlated, we source both Level (Total number) and Rate (Percentage of Level to total employment and / or job openings) for the following statistics: 1) Job Openings, 2) Layoffs, 3) Quits, 4) Total Separations, and 5) Other Separations. While Rate paints an aggregated, holistic picture for job market trends, Level provides a raw count for total separations alone. Both these statistics were captured by a monthly aggregate and merged to the OPM data by their respective months.

In [17]:
%%time

def bls(series, start, end):
    headers = {'Content-type': 'application/json'}
    sID   = []
    
    for i in range(0,len(series)):
        sID.append(series[i][0])
    
    data = json.dumps({"seriesid": sID,
                       "startyear":start,
                       "endyear":end,
                       "catalog":False,
                       "calculations":False,
                       "annualaverage":False,
                       "registrationkey":"7a89c8d7979349fba8914b8be16a1646"})
    
    p = requests.post('https://api.bls.gov/publicAPI/v2/timeseries/data/', data=data, headers=headers)
    json_data = json.loads(p.text)
    bls = []
    for series in json_data['Results']['series']:
        #x=prettytable.PrettyTable(["series id","year","period","value","footnotes"])
        result = pd.DataFrame(columns=["series id","year","period","value","footnotes"])
        seriesId = series['seriesID']
        for item in series['data']:
            year = item['year']
            period = item['period']
            value = item['value']
            footnotes=""
            for footnote in item['footnotes']:
                if footnote:
                    footnotes = footnotes + footnote['text'] + ','
            if 'M01' <= period <= 'M12':
                #x.add_row([seriesId,year,period,value,footnotes[0:-1]])
                y = pd.DataFrame({"series id" : seriesId,
                                  "year" : year,
                                  "period" : period,
                                  "value" : value,
                                  "footnotes" : footnotes}, index = [0])
                result = result.append(y, ignore_index = True)
        bls.append(result)
    return(bls)
CPU times: user 2 µs, sys: 0 ns, total: 2 µs
Wall time: 7.39 µs
In [18]:
%%time

seriesList = [
              ['JTU91000000JOL','BLS_FEDERAL_JobOpenings_Level'],
              ['JTU91000000LDL','BLS_FEDERAL_Layoffs_Level'],
              ['JTU91000000OSL','BLS_FEDERAL_OtherSep_Level'],
              ['JTU91000000QUL','BLS_FEDERAL_Quits_Level'],
              ['JTU91000000TSL','BLS_FEDERAL_TotalSep_Level'],
              ['JTU91000000JOR','BLS_FEDERAL_JobOpenings_Rate'],
              ['JTU91000000LDR','BLS_FEDERAL_Layoffs_Rate'],
              ['JTU91000000OSR','BLS_FEDERAL_OtherSep_Rate'],
              ['JTU91000000QUR','BLS_FEDERAL_Quits_Rate'],
              ['JTU91000000TSR','BLS_FEDERAL_TotalSep_Rate']
             ]

# Pull job openings and labor turnover data
JTL = bls(seriesList, "2014", "2015")

seriesList = pd.DataFrame(seriesList, columns = ["series id","sName"])

##We need to replace these with actual Descriptor Column Names

for i in range(0,len(seriesList)):
    
    JTL[i] = JTL[i].merge(seriesList, on = "series id", how = 'inner')

    if len(JTL[i]) >0:
        name = JTL[i]["sName"].drop_duplicates().values[0]
    else:
        name = str(i)

    JTL[i][name] = JTL[i]["value"].apply(pd.to_numeric)
    JTL[i]["DATECODE"] = JTL[i]["year"] + JTL[i]["period"].str[-2:]
    del JTL[i]["value"]
    del JTL[i]["year"]
    del JTL[i]["period"]
    del JTL[i]["series id"]
    del JTL[i]["footnotes"]
    del JTL[i]["sName"]
    
    
    OPMDataMerged = OPMDataMerged.merge(JTL[i], on = "DATECODE", how = 'left')
    display(JTL[i].head())
    
BLS_FEDERAL_OtherSep_Rate DATECODE
0 0.4 201512
1 0.4 201511
2 0.4 201510
3 0.4 201509
4 0.5 201508
BLS_FEDERAL_Quits_Rate DATECODE
0 0.4 201512
1 0.4 201511
2 0.6 201510
3 0.5 201509
4 0.6 201508
BLS_FEDERAL_TotalSep_Level DATECODE
0 37 201512
1 35 201511
2 45 201510
3 38 201509
4 41 201508
BLS_FEDERAL_JobOpenings_Rate DATECODE
0 2.9 201512
1 2.6 201511
2 2.4 201510
3 1.9 201509
4 2.3 201508
BLS_FEDERAL_OtherSep_Level DATECODE
0 12 201512
1 10 201511
2 12 201510
3 12 201509
4 14 201508
BLS_FEDERAL_Quits_Level DATECODE
0 11 201512
1 10 201511
2 16 201510
3 14 201509
4 17 201508
BLS_FEDERAL_JobOpenings_Level DATECODE
0 83 201512
1 73 201511
2 68 201510
3 55 201509
4 67 201508
BLS_FEDERAL_Layoffs_Rate DATECODE
0 0.5 201512
1 0.6 201511
2 0.6 201510
3 0.4 201509
4 0.3 201508
BLS_FEDERAL_Layoffs_Level DATECODE
0 15 201512
1 15 201511
2 18 201510
3 12 201509
4 10 201508
BLS_FEDERAL_TotalSep_Rate DATECODE
0 1.3 201512
1 1.3 201511
2 1.6 201510
3 1.4 201509
4 1.5 201508
CPU times: user 37.1 s, sys: 9.81 s, total: 46.9 s
Wall time: 47.4 s
In [19]:
display(OPMDataMerged.head())
display(OPMDataMerged.tail())
AGYSUB SEP DATECODE AGELVL GENDER GSEGRD LOSLVL LOC OCC PATCO PPGRD SALLVL TOA WORKSCH COUNT SALARY LOS AGYTYP AGYTYPT AGY AGYT AGYSUBT QTR AGELVLT LOSLVLT LOCTYP LOCTYPT LOCT OCCTYP OCCTYPT OCCFAM OCCFAMT OCCT PATCOT PPTYP PPTYPT PPGROUP PPGROUPT PAYPLAN PAYPLANT SALLVLT TOATYP TOATYPT TOAT WSTYP WSTYPT WORKSCHT SEPCount_EFDATE_OCC SEPCount_EFDATE_LOC IndAvgSalary SalaryOverUnderIndAvg LowerLimitAge YearsToRetirement BLS_FEDERAL_OtherSep_Rate BLS_FEDERAL_Quits_Rate BLS_FEDERAL_TotalSep_Level BLS_FEDERAL_JobOpenings_Rate BLS_FEDERAL_OtherSep_Level BLS_FEDERAL_Quits_Level BLS_FEDERAL_JobOpenings_Level BLS_FEDERAL_Layoffs_Rate BLS_FEDERAL_Layoffs_Level BLS_FEDERAL_TotalSep_Rate
0 AA00 SC 201507 C M 11 A 11 0905 1 GS-11 F 40 F 1.0 63722.0 0.8 4 Small Independent Agencies (less than 100 empl... AA AA-ADMINISTRATIVE CONFERENCE OF THE UNITED STATES AA00-ADMINISTRATIVE CONFERENCE OF THE UNITED S... 4 25-29 Less than 1 year 1 United States 11-DISTRICT OF COLUMBIA 1 White Collar 09 09xx-LEGAL AND KINDRED 0905-GENERAL ATTORNEY Professional 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans GS GS-GENERAL SCHEDULE $60,000 - $69,999 2 Non-permanent 40-Excepted Service - Schedule A 1 Full-time Full-time Nonseasonal 205.0 1319 64540.593830 -818.593830 25.0 32.0 0.4 0.5 34 2.6 11 13 74 0.4 10 1.2
1 AA00 SC 201506 D F 15 C 11 0905 1 GS-15 L 30 F 1.0 126245.0 4.8 4 Small Independent Agencies (less than 100 empl... AA AA-ADMINISTRATIVE CONFERENCE OF THE UNITED STATES AA00-ADMINISTRATIVE CONFERENCE OF THE UNITED S... 3 30-34 3 - 4 years 1 United States 11-DISTRICT OF COLUMBIA 1 White Collar 09 09xx-LEGAL AND KINDRED 0905-GENERAL ATTORNEY Professional 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans GS GS-GENERAL SCHEDULE $120,000 - $129,999 1 Permanent 30-Excepted Service - Schedule A 1 Full-time Full-time Nonseasonal 207.0 1132 149864.298504 -23619.298504 30.0 27.0 0.4 0.5 34 2.3 12 13 65 0.4 10 1.2
2 AF** SA 201503 H M 11 C 48 2210 2 GS-11 F 10 F 1.0 66585.0 4.9 1 Cabinet Level Agencies AF AF-DEPARTMENT OF THE AIR FORCE AF**-INVALID 2 50-54 3 - 4 years 1 United States 48-TEXAS 1 White Collar 22 22xx-INFORMATION TECHNOLOGY 2210-INFORMATION TECHNOLOGY MANAGEMENT Administrative 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans GS GS-GENERAL SCHEDULE $60,000 - $69,999 1 Permanent 10-Competitive Service - Career 1 Full-time Full-time Nonseasonal 439.0 1087 71530.963755 -4945.963755 50.0 7.0 0.3 0.4 31 3.0 9 10 86 0.5 12 1.1
3 AF02 SD 201506 I M 15 J 35 0301 2 GS-15 O 10 F 1.0 156737.0 39.8 1 Cabinet Level Agencies AF AF-DEPARTMENT OF THE AIR FORCE AF02-AIR FORCE INSPECTION AGENCY (FO) 3 55-59 35 years or more 1 United States 35-NEW MEXICO 1 White Collar 03 03xx-GENERAL ADMIN, CLERICAL, & OFFICE SVCS 0301-MISCELLANEOUS ADMINISTRATION AND PROGRAM Administrative 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans GS GS-GENERAL SCHEDULE $150,000 - $159,999 1 Permanent 10-Competitive Service - Career 1 Full-time Full-time Nonseasonal 670.0 265 146735.220304 10001.779696 55.0 2.0 0.4 0.5 34 2.3 12 13 65 0.4 10 1.2
4 AF03 SC 201509 H M 13 B 06 0301 2 GS-13 I 15 F 1.0 92973.0 1.0 1 Cabinet Level Agencies AF AF-DEPARTMENT OF THE AIR FORCE AF03-AIR FORCE OPERATIONAL TEST AND EVALUATION... 4 50-54 1 - 2 years 1 United States 06-CALIFORNIA 1 White Collar 03 03xx-GENERAL ADMIN, CLERICAL, & OFFICE SVCS 0301-MISCELLANEOUS ADMINISTRATION AND PROGRAM Administrative 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans GS GS-GENERAL SCHEDULE $90,000 - $99,999 1 Permanent 15-Competitive Service - Career-Conditional 1 Full-time Full-time Nonseasonal 721.0 1853 101641.124025 -8668.124025 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4
AGYSUB SEP DATECODE AGELVL GENDER GSEGRD LOSLVL LOC OCC PATCO PPGRD SALLVL TOA WORKSCH COUNT SALARY LOS AGYTYP AGYTYPT AGY AGYT AGYSUBT QTR AGELVLT LOSLVLT LOCTYP LOCTYPT LOCT OCCTYP OCCTYPT OCCFAM OCCFAMT OCCT PATCOT PPTYP PPTYPT PPGROUP PPGROUPT PAYPLAN PAYPLANT SALLVLT TOATYP TOATYPT TOAT WSTYP WSTYPT WORKSCHT SEPCount_EFDATE_OCC SEPCount_EFDATE_LOC IndAvgSalary SalaryOverUnderIndAvg LowerLimitAge YearsToRetirement BLS_FEDERAL_OtherSep_Rate BLS_FEDERAL_Quits_Rate BLS_FEDERAL_TotalSep_Level BLS_FEDERAL_JobOpenings_Rate BLS_FEDERAL_OtherSep_Level BLS_FEDERAL_Quits_Level BLS_FEDERAL_JobOpenings_Level BLS_FEDERAL_Layoffs_Rate BLS_FEDERAL_Layoffs_Level BLS_FEDERAL_TotalSep_Rate
8170902 ZU00 NS 201509 D NaN NaN C 11 0301 2 AD-00 G 48 F NaN 76377.0 4.8 4 Small Independent Agencies (less than 100 empl... ZU ZU-DWIGHT D. EISENHOWER MEMORIAL COMMISSION ZU00-DWIGHT D. EISENHOWER MEMORIAL COMMISSION 4 30-34 3 - 4 years 1 United States 11-DISTRICT OF COLUMBIA 1 White Collar 03 03xx-GENERAL ADMIN, CLERICAL, & OFFICE SVCS 0301-MISCELLANEOUS ADMINISTRATION AND PROGRAM Administrative 3 Other White Collar Pay Plans 31 Governmentwide or Multi-Agency Plans AD AD-ADMINISTRATIVELY DETERMINED RATES, NOT ELSE... $70,000 - $79,999 2 Non-permanent 48-Excepted Service - Other 1 Full-time Full-time Nonseasonal 721.0 1391 115840.182250 -39463.182250 30.0 27.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4
8170903 ZU00 NS 201509 K NaN NaN D 11 0301 2 AD-00 M 48 F NaN 139517.0 7.0 4 Small Independent Agencies (less than 100 empl... ZU ZU-DWIGHT D. EISENHOWER MEMORIAL COMMISSION ZU00-DWIGHT D. EISENHOWER MEMORIAL COMMISSION 4 65 or more 5 - 9 years 1 United States 11-DISTRICT OF COLUMBIA 1 White Collar 03 03xx-GENERAL ADMIN, CLERICAL, & OFFICE SVCS 0301-MISCELLANEOUS ADMINISTRATION AND PROGRAM Administrative 3 Other White Collar Pay Plans 31 Governmentwide or Multi-Agency Plans AD AD-ADMINISTRATIVELY DETERMINED RATES, NOT ELSE... $130,000 - $139,999 2 Non-permanent 48-Excepted Service - Other 1 Full-time Full-time Nonseasonal 721.0 1391 115840.182250 23676.817750 65.0 -8.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4
8170904 ZU00 NS 201509 K NaN NaN D 11 0301 2 AD-00 O 48 F NaN 158671.0 7.0 4 Small Independent Agencies (less than 100 empl... ZU ZU-DWIGHT D. EISENHOWER MEMORIAL COMMISSION ZU00-DWIGHT D. EISENHOWER MEMORIAL COMMISSION 4 65 or more 5 - 9 years 1 United States 11-DISTRICT OF COLUMBIA 1 White Collar 03 03xx-GENERAL ADMIN, CLERICAL, & OFFICE SVCS 0301-MISCELLANEOUS ADMINISTRATION AND PROGRAM Administrative 3 Other White Collar Pay Plans 31 Governmentwide or Multi-Agency Plans AD AD-ADMINISTRATIVELY DETERMINED RATES, NOT ELSE... $150,000 - $159,999 2 Non-permanent 48-Excepted Service - Other 1 Full-time Full-time Nonseasonal 721.0 1391 115840.182250 42830.817750 65.0 -8.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4
8170905 ZU00 NS 201509 B NaN NaN B 11 0301 2 AD-00 C 48 F NaN 36244.0 1.6 4 Small Independent Agencies (less than 100 empl... ZU ZU-DWIGHT D. EISENHOWER MEMORIAL COMMISSION ZU00-DWIGHT D. EISENHOWER MEMORIAL COMMISSION 4 20-24 1 - 2 years 1 United States 11-DISTRICT OF COLUMBIA 1 White Collar 03 03xx-GENERAL ADMIN, CLERICAL, & OFFICE SVCS 0301-MISCELLANEOUS ADMINISTRATION AND PROGRAM Administrative 3 Other White Collar Pay Plans 31 Governmentwide or Multi-Agency Plans AD AD-ADMINISTRATIVELY DETERMINED RATES, NOT ELSE... $30,000 - $39,999 2 Non-permanent 48-Excepted Service - Other 1 Full-time Full-time Nonseasonal 721.0 1391 115840.182250 -79596.182250 20.0 37.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4
8170906 ZU00 NS 201509 E NaN NaN D 11 0505 2 AD-00 I 48 F NaN 99288.0 5.0 4 Small Independent Agencies (less than 100 empl... ZU ZU-DWIGHT D. EISENHOWER MEMORIAL COMMISSION ZU00-DWIGHT D. EISENHOWER MEMORIAL COMMISSION 4 35-39 5 - 9 years 1 United States 11-DISTRICT OF COLUMBIA 1 White Collar 05 05xx-ACCOUNTING AND BUDGET 0505-FINANCIAL MANAGEMENT Administrative 3 Other White Collar Pay Plans 31 Governmentwide or Multi-Agency Plans AD AD-ADMINISTRATIVELY DETERMINED RATES, NOT ELSE... $90,000 - $99,999 2 Non-permanent 48-Excepted Service - Other 1 Full-time Full-time Nonseasonal 7.0 1391 148382.833333 -49094.833333 35.0 22.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4
In [ ]:
 
In [20]:
display(pd.DataFrame({'StratCount' : OPMDataMerged.groupby(["SEP"]).size()}).reset_index())
SEP StratCount
0 NS 7957918
1 SA 26945
2 SB 333
3 SC 66248
4 SD 56820
5 SE 1260
6 SF 4100
7 SG 1467
8 SH 400
9 SI 9728
10 SJ 42754
11 SK 2892
12 SL 42

Preliminary EDA

In terms of data exploration, we first investigate numeric type attributes. Relationships, distributions, and correlation values are reviewed.

A new binary separation attribute is created to indicate whether non-sep or sep for EDA correlation purposes

In [21]:
#%%time
#
#
#cols = list(SampledOPMData.select_dtypes(include=['float64', 'int64']))
#cols.remove('COUNT')
#cols.remove('BLS_FEDERAL_OtherSep_Rate')
#cols.remove('BLS_FEDERAL_Quits_Rate')
#cols.remove('BLS_FEDERAL_TotalSep_Level')
#cols.remove('BLS_FEDERAL_JobOpenings_Rate')
#cols.remove('BLS_FEDERAL_OtherSep_Level')
#cols.remove('BLS_FEDERAL_Quits_Level')
#cols.remove('BLS_FEDERAL_JobOpenings_Level')
#cols.remove('BLS_FEDERAL_Layoffs_Rate')
#cols.remove('BLS_FEDERAL_Layoffs_Level')
#cols.remove('BLS_FEDERAL_TotalSep_Rate')
#cols.append('SEP')
#display(cols)
#
#plotNumeric = SampledOPMData[cols]
#
## Create binary separation attribute for EDA correlation review
##plotNumeric["SEP_bin"] = plotNumeric.SEP.replace("NS", 1)
##plotNumeric.loc[plotNumeric['SEP_bin'] != 1, 'SEP_bin'] = 0
##plotNumeric.SEP_bin = plotNumeric.SEP_bin.apply(pd.to_numeric)
#AttSplit = pd.get_dummies(plotNumeric['SEP'],prefix='SEP')
#display(AttSplit.head())
#plotNumeric = pd.concat((plotNumeric,AttSplit),axis=1) # add back into the dataframe
#
#display(plotNumeric.head())
#print("plotNumeric has {0} Records".format(len(plotNumeric)))
##print(plotNumeric.SEP_bin.dtype)
In [22]:
%%time


cols = list(OPMDataMerged.select_dtypes(include=['float64', 'int64']))
cols.remove('COUNT')
cols.remove('BLS_FEDERAL_OtherSep_Rate')
cols.remove('BLS_FEDERAL_Quits_Rate')
cols.remove('BLS_FEDERAL_TotalSep_Level')
cols.remove('BLS_FEDERAL_JobOpenings_Rate')
cols.remove('BLS_FEDERAL_OtherSep_Level')
cols.remove('BLS_FEDERAL_Quits_Level')
cols.remove('BLS_FEDERAL_JobOpenings_Level')
cols.remove('BLS_FEDERAL_Layoffs_Rate')
cols.remove('BLS_FEDERAL_Layoffs_Level')
cols.remove('BLS_FEDERAL_TotalSep_Rate')
cols.append('SEP')
display(cols)

plotNumeric = OPMDataMerged[cols]

# Create binary separation attribute for EDA correlation review
#plotNumeric["SEP_bin"] = plotNumeric.SEP.replace("NS", 1)
#plotNumeric.loc[plotNumeric['SEP_bin'] != 1, 'SEP_bin'] = 0
#plotNumeric.SEP_bin = plotNumeric.SEP_bin.apply(pd.to_numeric)
AttSplit = pd.get_dummies(plotNumeric['SEP'],prefix='SEP')
display(AttSplit.head())
plotNumeric = pd.concat((plotNumeric,AttSplit),axis=1) # add back into the dataframe

display(plotNumeric.head())
print("plotNumeric has {0} Records".format(len(plotNumeric)))
#print(plotNumeric.SEP_bin.dtype)
['SALARY',
 'LOS',
 'SEPCount_EFDATE_OCC',
 'SEPCount_EFDATE_LOC',
 'IndAvgSalary',
 'SalaryOverUnderIndAvg',
 'LowerLimitAge',
 'YearsToRetirement',
 'SEP']
SEP_NS SEP_SA SEP_SB SEP_SC SEP_SD SEP_SE SEP_SF SEP_SG SEP_SH SEP_SI SEP_SJ SEP_SK SEP_SL
0 0 0 0 1 0 0 0 0 0 0 0 0 0
1 0 0 0 1 0 0 0 0 0 0 0 0 0
2 0 1 0 0 0 0 0 0 0 0 0 0 0
3 0 0 0 0 1 0 0 0 0 0 0 0 0
4 0 0 0 1 0 0 0 0 0 0 0 0 0
SALARY LOS SEPCount_EFDATE_OCC SEPCount_EFDATE_LOC IndAvgSalary SalaryOverUnderIndAvg LowerLimitAge YearsToRetirement SEP SEP_NS SEP_SA SEP_SB SEP_SC SEP_SD SEP_SE SEP_SF SEP_SG SEP_SH SEP_SI SEP_SJ SEP_SK SEP_SL
0 63722.0 0.8 205.0 1319 64540.593830 -818.593830 25.0 32.0 SC 0 0 0 1 0 0 0 0 0 0 0 0 0
1 126245.0 4.8 207.0 1132 149864.298504 -23619.298504 30.0 27.0 SC 0 0 0 1 0 0 0 0 0 0 0 0 0
2 66585.0 4.9 439.0 1087 71530.963755 -4945.963755 50.0 7.0 SA 0 1 0 0 0 0 0 0 0 0 0 0 0
3 156737.0 39.8 670.0 265 146735.220304 10001.779696 55.0 2.0 SD 0 0 0 0 1 0 0 0 0 0 0 0 0
4 92973.0 1.0 721.0 1853 101641.124025 -8668.124025 50.0 7.0 SC 0 0 0 1 0 0 0 0 0 0 0 0 0
plotNumeric has 8170907 Records
CPU times: user 1.07 s, sys: 511 ms, total: 1.58 s
Wall time: 1.58 s
In [23]:
#%%time
#
#sns.set(font_scale=1)
#sns.pairplot(plotNumeric.drop(["SEP_NS", 
#                               "SEP_SA", 
#                               "SEP_SB", 
#                               "SEP_SC", 
#                               "SEP_SD", 
#                               "SEP_SE", 
#                               "SEP_SF", 
#                               "SEP_SG", 
#                               "SEP_SH", 
#                               "SEP_SI", 
#                               "SEP_SJ", 
#                               "SEP_SK", 
#                               "SEP_SL"
#                              ], axis=1), hue = 'SEP', palette="hls", plot_kws={"s": 50})
In [24]:
%%time

# Function modified from https://stackoverflow.com/questions/29530355/plotting-multiple-histograms-in-grid
sns.set()

def draw_histograms(df, variables, n_rows, n_cols):
    fig=plt.figure(figsize=(20,20))
    for i, var_name in enumerate(variables):
        ax=fig.add_subplot(n_rows,n_cols,i+1)
        df[var_name].hist(bins=20,ax=ax, color='#58D68D')
        ax.set_title(var_name+" Distribution")
    fig.tight_layout()  # Improves appearance a bit.
    plt.show()

draw_histograms(plotNumeric.drop(['SEP',
                                  "SEP_NS", 
                               "SEP_SA", 
                               "SEP_SB", 
                               "SEP_SC", 
                               "SEP_SD", 
                               "SEP_SE", 
                               "SEP_SF", 
                               "SEP_SG", 
                               "SEP_SH", 
                               "SEP_SI", 
                               "SEP_SJ", 
                               "SEP_SK", 
                               "SEP_SL"
                              ], axis=1),
                plotNumeric.drop(['SEP',
                                  "SEP_NS", 
                               "SEP_SA", 
                               "SEP_SB", 
                               "SEP_SC", 
                               "SEP_SD", 
                               "SEP_SE", 
                               "SEP_SF", 
                               "SEP_SG", 
                               "SEP_SH", 
                               "SEP_SI", 
                               "SEP_SJ", 
                               "SEP_SK", 
                               "SEP_SL"
                              ], axis=1).columns, 6, 3)
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
CPU times: user 4.51 s, sys: 6.17 s, total: 10.7 s
Wall time: 4.26 s
In [25]:
%%time
# Inspired by http://seaborn.pydata.org/examples/many_pairwise_correlations.html

#plt.matshow(plotNumeric.corr())

sns.set(style='white')
corr = plotNumeric.drop(['SEP'], axis=1).corr()

# Generate a mask for the upper triangle
mask = np.zeros_like(corr, dtype=np.bool)
mask[np.triu_indices_from(mask, k=1)] = True

# Set up the matplotlib figure
f, ax = plt.subplots(figsize=(20, 20))

# Generate a custom diverging colormap
cmap = sns.diverging_palette(250, 10, as_cmap=True)

# Draw the heatmap with the mask and correct aspect ratio
sns.set(font_scale=0.95)
heatCorr = sns.heatmap(corr, mask=mask, cmap=cmap, vmax=1, vmin=-1,
                       square=True, annot=True, linewidths=1,
                       cbar_kws={"shrink": .5}, ax=ax, fmt='.1g')
#heatCorr.
ax.tick_params(labelsize=15)
cax = plt.gcf().axes[-1]
cax.tick_params(labelsize=15)

sns.plt.show()
#sns.heatmap(corr, annot=True, linewidths=0.01, cmap=cmap, ax=ax)
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
CPU times: user 9.07 s, sys: 1.3 s, total: 10.4 s
Wall time: 9.32 s

Based on the distribution of attributes identified above, we have decided to take the log transform of several attributes.

  • Salary
  • LOS (augmented by a value of .00001 to adjust for the undefined result of log(0)
  • SEPCount_EFDATE_OCC
  • SEPCount_EFDATE_LOC
In [26]:
%%time

# Log Transform Columns Added
OPMDataMerged["SALARYLog"] = OPMDataMerged["SALARY"].apply(np.log)
#OPMDataMerged["LOSLog"] = (OPMDataMerged["LOS"] + .00001).apply(np.log)
OPMDataMerged["LOSSqrt"] = (OPMDataMerged["LOS"]).apply(np.sqrt)
OPMDataMerged["SEPCount_EFDATE_OCCLog"] = OPMDataMerged["SEPCount_EFDATE_OCC"].apply(np.log)
OPMDataMerged["SEPCount_EFDATE_LOCLog"] = OPMDataMerged["SEPCount_EFDATE_LOC"].apply(np.log)
OPMDataMerged["IndAvgSalaryLog"] = OPMDataMerged["IndAvgSalary"].apply(np.log)
CPU times: user 1.07 s, sys: 67.7 ms, total: 1.14 s
Wall time: 1.14 s

We next review categorical data to improve our understanding of factor levels.

In [27]:
#%%time
#            "LOCTYPT",
#            "OCCTYP",
#            "OCCTYPT",
#            "PPTYP",
#            "PPTYPT",
#            "AGYTYP",
#            "OCCFAM",
#            "PPGROUP",
#            "PAYPLAN",
#            "TOATYP",
#            "WSTYP",
#            "AGYSUBT",
#            "AGELVL",
#            "LOSLVL",
#            "LOC",
#            "OCC",
#            "PATCO",
#            "SALLVL",
#            "TOA",
#            "WORKSCH"]
#
#for i in dropCols:
#    cols.remove(i)
#
#plotCat = SampledOPMData[cols]
#display(plotCat.head())
#print("plotCat Has {0} Records".format(len(plotCat)))
#print("Number of colums = ", len(cols))
In [28]:
%%time

cols = list(OPMDataMerged.select_dtypes(include=['object']))
dropCols = ["LOCTYP",
            "LOCTYPT",
            "OCCTYP",
            "OCCTYPT",
            "PPTYP",
            "PPTYPT",
            "AGYTYP",
            "OCCFAM",
            "PPGROUP",
            "PAYPLAN",
            "TOATYP",
            "WSTYP",
            "AGYSUBT",
            "AGELVL",
            "LOSLVL",
            "LOC",
            "OCC",
            "PATCO",
            "SALLVL",
            "TOA",
            "WORKSCH"]

for i in dropCols:
    cols.remove(i)

plotCat = OPMDataMerged[cols]
display(plotCat.head())
print("plotCat Has {0} Records".format(len(plotCat)))
print("Number of colums = ", len(cols))
AGYSUB SEP DATECODE GENDER GSEGRD PPGRD AGYTYPT AGY AGYT QTR AGELVLT LOSLVLT LOCT OCCFAMT OCCT PATCOT PPGROUPT PAYPLANT SALLVLT TOATYPT TOAT WSTYPT WORKSCHT
0 AA00 SC 201507 M 11 GS-11 Small Independent Agencies (less than 100 empl... AA AA-ADMINISTRATIVE CONFERENCE OF THE UNITED STATES 4 25-29 Less than 1 year 11-DISTRICT OF COLUMBIA 09xx-LEGAL AND KINDRED 0905-GENERAL ATTORNEY Professional Standard GSEG Pay Plans GS-GENERAL SCHEDULE $60,000 - $69,999 Non-permanent 40-Excepted Service - Schedule A Full-time Full-time Nonseasonal
1 AA00 SC 201506 F 15 GS-15 Small Independent Agencies (less than 100 empl... AA AA-ADMINISTRATIVE CONFERENCE OF THE UNITED STATES 3 30-34 3 - 4 years 11-DISTRICT OF COLUMBIA 09xx-LEGAL AND KINDRED 0905-GENERAL ATTORNEY Professional Standard GSEG Pay Plans GS-GENERAL SCHEDULE $120,000 - $129,999 Permanent 30-Excepted Service - Schedule A Full-time Full-time Nonseasonal
2 AF** SA 201503 M 11 GS-11 Cabinet Level Agencies AF AF-DEPARTMENT OF THE AIR FORCE 2 50-54 3 - 4 years 48-TEXAS 22xx-INFORMATION TECHNOLOGY 2210-INFORMATION TECHNOLOGY MANAGEMENT Administrative Standard GSEG Pay Plans GS-GENERAL SCHEDULE $60,000 - $69,999 Permanent 10-Competitive Service - Career Full-time Full-time Nonseasonal
3 AF02 SD 201506 M 15 GS-15 Cabinet Level Agencies AF AF-DEPARTMENT OF THE AIR FORCE 3 55-59 35 years or more 35-NEW MEXICO 03xx-GENERAL ADMIN, CLERICAL, & OFFICE SVCS 0301-MISCELLANEOUS ADMINISTRATION AND PROGRAM Administrative Standard GSEG Pay Plans GS-GENERAL SCHEDULE $150,000 - $159,999 Permanent 10-Competitive Service - Career Full-time Full-time Nonseasonal
4 AF03 SC 201509 M 13 GS-13 Cabinet Level Agencies AF AF-DEPARTMENT OF THE AIR FORCE 4 50-54 1 - 2 years 06-CALIFORNIA 03xx-GENERAL ADMIN, CLERICAL, & OFFICE SVCS 0301-MISCELLANEOUS ADMINISTRATION AND PROGRAM Administrative Standard GSEG Pay Plans GS-GENERAL SCHEDULE $90,000 - $99,999 Permanent 15-Competitive Service - Career-Conditional Full-time Full-time Nonseasonal
plotCat Has 8170907 Records
Number of colums =  23
CPU times: user 3.14 s, sys: 1.3 s, total: 4.44 s
Wall time: 4.43 s

AGYSUB

High seperation among following:

  • Veterans Health Administration (VATA)
  • Forest Service (AG11)

GENDER

Similar separation distributions among males and females, except more terminations due to contract expiration among males

GSEGRD

High termination due to expired appt/other among following:

  • 3
  • 4
  • 5

Bimodal Quit distribution with outlier spike at GSEGRD 9:

  • Distribution 1 from GSEGRD 3 to 8
  • Distribution 2 from GSEGRD 11 to 15

Individual transfers highest among levels 11, 12, 13

PPGRD

Majority of distribution resides in GS values per the GSEGRD observations described above.... Are other PPGRD values of any significance? What are corporate grades all about?

AGYT

Top three Agencies with separation:

  1. AR-Department of the Army
  2. AG-Department of Agriculture
  3. VA-Department of Veteran Affairs

High contract termination in:

  • AG-Department of Agriculture
  • IN-Department of the Interior

While Veteran Affairs and Army both have many quits and many retirees, the Army has significantly more individual transfers (on par with retirements)

QTR

Most contract terminations in 1st and 4th quarters

Retirement peaks in 2nd quarter

Number of quits increases from one quarter to the next

*Bear in mind these are quarters from single year only so time-sensitive trends may not be applicable*

AGELVLT

High termination due to expired appt/other among following:

  • B
  • C

Number of Quits peaks at AGELVL D

Individual transfer counts mostly trend with Quits

Retirement highest at following:

  • I
  • J
  • K

LOSLVLT

Highest Quit count for LOSLVL A (< 1 year service) which then declines for levels B and C before spiking again at level D (5-9 years service)

Same pattern is observed for contract terminations but without any significant spikes with longer service

Large individual transfer spike at LOSLVL D (5-9 years service)

Retirement starts at LOSLVL D but trends upward to J

LOCT

Contract terminations comprise most California terminations among top total separation states

East Coast locations may possibly have most individual transfers, the most being in Washington DC

OCCFAMT

03xx-General Admin, clerical, and office svcs highest separation by far but indicates both high number of Quits and Retirements

Many quits in 06xx-Medical

04xx-Natural Resources again indicates high number of contract terminations

01xx-Social Science has even number of Quits and retirements

OCCT

PATCOT

PAYPLANT

Results skewed by GS

TOAT

WORKSCHT

Should model full time only

In [29]:
def subCountPlot(att1, att2, thresh):
    counts = plotCat.groupby([att1, att2]).size().unstack(fill_value=0) # Get att1 sizes by att2
    counts = pd.concat([counts,counts.sum(axis=1)], axis=1) # Calculate total for each att1 value and append total as new column
    counts.rename(columns={0:"Total"}, inplace=True)
    top = counts[counts["Total"] > thresh].index.tolist() # Obtain att1 values where total surpasses threshold
    
    zoom = plotCat[plotCat[att1].isin(top)] # Subset data to only the top att1 values
    f, (ax1, ax2) = plt.subplots(ncols=2, figsize=(20, 10), sharey=False)
    sns.countplot(y=att1, data=zoom, color="blue", ax=ax1); # Dark blue signifies zoomed data
    sns.countplot(y=att1, data=zoom, hue=att2, palette="hls", ax=ax2);
In [30]:
def percBarPlot(att1, att2, numColors):
    # Create count by att1 and att2
    counts = plotCat.groupby([att1, att2]).size().unstack(fill_value=0) # Get att1 sizes by att2
    counts = pd.concat([counts,counts.sum(axis=1)], axis=1) # Calculate total for each att1 value and append total as new column
    counts.rename(columns={0:"Total"}, inplace=True)
    #counts.drop('Total', axis=1).plot(kind='bar', stacked=True)
    
    # create cmap from sns color palette
    my_cmap = ListedColormap(sns.color_palette('hls', numColors).as_hex())

    # Create and plot percentage by att1 and att2
    nest1 = []
    for i in counts.values:
        nest2 = []
        for j in i:
            nest2.append(float(j/(i[len(i)-1:]))*100)
        nest1.append(nest2)
    perc = pd.DataFrame(nest1)
    perc = perc.set_index(counts.index.values)
    perc.columns = counts.columns
    perc.drop('Total', axis=1).plot(kind='bar', stacked=True, ylim=(0,100), figsize={13,6}, title=att1+' Percentage Plot', colormap=my_cmap)
In [31]:
temp = cols[:4] # for quick visualization debug only; may delete once complete
In [32]:
%%time

for i in cols:
    if i != 'SEP':
        plt.figure(i) # Required to create new figure each loop rather than drawing over previous object
        f, (ax1, ax2) = plt.subplots(ncols=2, figsize=(20, 10), sharey=False)
        sns.countplot(y=i, data=plotCat, color="lightblue", ax=ax1);
        sns.countplot(y=i, data=plotCat, hue="SEP", palette="hls", ax=ax2);
        
    if i == 'AGYSUB':
        subCountPlot(i, 'SEP', 10000)
    elif i == 'LOCT':
        subCountPlot(i, 'SEP', 4000)
    elif i == 'OCCT':
        subCountPlot(i, 'SEP', 2000)
    elif i == 'PPGRD':
        subCountPlot(i, 'SEP', 6000)
    elif i == 'AGYT':
        subCountPlot(i, 'SEP', 3000)
/usr/local/es7/lib/python3.5/site-packages/matplotlib/pyplot.py:524: RuntimeWarning: More than 20 figures have been opened. Figures created through the pyplot interface (`matplotlib.pyplot.figure`) are retained until explicitly closed and may consume too much memory. (To control this warning, see the rcParam `figure.max_open_warning`).
  max_open_warning, RuntimeWarning)
CPU times: user 9min 56s, sys: 12.2 s, total: 10min 8s
Wall time: 10min 7s
<matplotlib.figure.Figure at 0x7f9a1b9c28d0>
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
<matplotlib.figure.Figure at 0x7f99614a1da0>
<matplotlib.figure.Figure at 0x7f995fcf2a58>
<matplotlib.figure.Figure at 0x7f9961980048>
<matplotlib.figure.Figure at 0x7f995faaa128>
<matplotlib.figure.Figure at 0x7f994347f320>
<matplotlib.figure.Figure at 0x7f994179a908>
<matplotlib.figure.Figure at 0x7f9941616dd8>
<matplotlib.figure.Figure at 0x7f993e707978>
<matplotlib.figure.Figure at 0x7f993dc11b70>
<matplotlib.figure.Figure at 0x7f993da4be48>
<matplotlib.figure.Figure at 0x7f993d7c2cf8>
<matplotlib.figure.Figure at 0x7f993cb30198>
<matplotlib.figure.Figure at 0x7f993bec0e48>
<matplotlib.figure.Figure at 0x7f9932d31a58>
<matplotlib.figure.Figure at 0x7f990d592ac8>
<matplotlib.figure.Figure at 0x7f990d1a7ba8>
<matplotlib.figure.Figure at 0x7f990cf4c320>
<matplotlib.figure.Figure at 0x7f98f91e3780>
<matplotlib.figure.Figure at 0x7f98f8da0898>
<matplotlib.figure.Figure at 0x7f98f8beaf60>
<matplotlib.figure.Figure at 0x7f98f8773470>
In [33]:
%%time

for i in cols:
    if i != 'SEP':
        percBarPlot(i, 'SEP', len(plotCat.SEP.drop_duplicates()))
/usr/local/es7/lib/python3.5/site-packages/matplotlib/pyplot.py:524: RuntimeWarning: More than 20 figures have been opened. Figures created through the pyplot interface (`matplotlib.pyplot.figure`) are retained until explicitly closed and may consume too much memory. (To control this warning, see the rcParam `figure.max_open_warning`).
  max_open_warning, RuntimeWarning)
CPU times: user 1min 13s, sys: 3.67 s, total: 1min 17s
Wall time: 1min 17s
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
In [34]:
percBarPlot('GSEGRD', 'SALLVLT', len(plotCat.SALLVLT.drop_duplicates()))
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
In [35]:
percBarPlot('PATCOT', 'SALLVLT', len(plotCat.SALLVLT.drop_duplicates()))
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
In [36]:
%%time

sns.set(style="whitegrid", palette="pastel", color_codes=True)

sns.violinplot(x="PATCOT", y="SALARY", hue="GENDER", data=OPMDataMerged[OPMDataMerged.GENDER != 'Z'], split=True,
               inner="quart", palette={"M": "b", "F": "pink"})
sns.despine(left=True)
CPU times: user 22.2 s, sys: 1min 4s, total: 1min 27s
Wall time: 14.7 s
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
In [37]:
%%time

# Draw a nested violinplot and split the violins for easier comparison
sns.violinplot(x="SEP", y="SALARY", hue="GENDER", data=OPMDataMerged[OPMDataMerged.GENDER != 'Z'], split=True,
               inner="quart", palette={"M": "b", "F": "pink"})
sns.despine(left=True)
CPU times: user 17.3 s, sys: 42 s, total: 59.4 s
Wall time: 12.4 s
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
In [38]:
%%time

sns.factorplot(x="SEP", y="SALARY", hue="GENDER", col="PATCOT",
               data=OPMDataMerged[OPMDataMerged.GENDER != 'Z'],
               kind="violin", split=True, aspect=.4, size=10);
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
CPU times: user 39.1 s, sys: 32.2 s, total: 1min 11s
Wall time: 40.6 s
Out[38]:
<seaborn.axisgrid.FacetGrid at 0x7f9934a72208>
In [39]:
#%%time
#
#sns.factorplot(x="SEP", y="SALARY", col="PATCOT", data=OPMDataMerged,
#               kind="violin", split=True, aspect=.4, size=10, palette = "hls");
In [40]:
#%%time
#
#g = sns.PairGrid(data=OPMDataMerged,
#                 x_vars=["SEP","PATCOT"],
#                 y_vars=["SALARY", "LOS", "LowerLimitAge", "YearsToRetirement"],
#                 aspect=1, size=10)
#g.map(sns.violinplot, palette="pastel");
In [41]:
del(plotNumeric, plotCat)

Focusing in on our Target Demographic

After analyzing the above plots for our categorical data, we have decided to narrow our focus due to the large variability in the dataset. We take the below actions on our dataset:

  • Keep only Full-time Nonseasonal observations
  • Remove the location US-SUPPRESSED (SEE DATA DEFINITIONS) due to apparent bias towards unknowns in the non-separation data
  • Keep only General Schedele Grades above 7.
  • Focus model generation on White Collar Jobs only
  • Create a Training set for the Professional PATCO value, and a Testing set for Administration

In addition, we have opted to remove the below attributes for model generation:

  • Datecode, QTR; Although very relevant for merging data from alternate sources, we do not have several years of data so this does not bring us much value
  • All Agency Attributes(AGYTYP,AGYTYPT,AGY,AGYT,AGYSUB,AGYSUBT); We are not concerned with agencies
  • Gender; Missing values for Non-Separation observations
  • Count; Missing values for Non-Separation observations; Also, all values = 1 so not very useful
  • PAYPLAN,PAYPLANT,PPGRD; Much too granular than we care for
  • LOSLVL,LOSLVLT; we have a numerical version of this attribute
  • OCC,OCCT; Much too granular than we care for

Our goal is to limit our focus to Professional occupations, build a model, then test that generated model on the Administration segment of the population.

In [42]:
%%time
print(len(OPMDataMerged))
#Removing Attributes
cols = list(OPMDataMerged.columns)
dropCols = ["QTR",
            "AGYTYP",
            "AGYTYPT",
            "AGY",
            "AGYT",
            "AGYSUB",
            "AGYSUBT",
            "GENDER",
            "COUNT",
            "PAYPLAN",
            "PAYPLANT",
            "PPGRD",
            "LOSLVL",
            "LOSLVLT",
            "SALLVL",
            "SALLVLT",
            "OCC",
            "OCCT"]

for i in dropCols:
    if i in cols:
        cols.remove(i)

OPMDataMerged = OPMDataMerged[cols]

# Keep only Full-time Nonseasonal observations
OPMDataMerged = OPMDataMerged[OPMDataMerged["WORKSCH"] == "F"]

#Remove the location US-SUPPRESSED (SEE DATA DEFINITIONS)
OPMDataMerged = OPMDataMerged[OPMDataMerged["LOC"] != "US"]

#Keep only General Schedele Grades above 7.
OPMDataMerged["GSEGRD"] = OPMDataMerged["GSEGRD"].apply(pd.to_numeric)
OPMDataMerged = OPMDataMerged[OPMDataMerged["GSEGRD"] >= 7]

#Focus model generation on White Collar Jobs only
OPMDataMerged = OPMDataMerged[OPMDataMerged["OCCTYP"] == "1"]

#Create a Training set for the Professional PATCO value, and a Testing set for Administration
OPMDataMergedProf = OPMDataMerged[OPMDataMerged["PATCO"] == "1"]
OPMDataMergedAdmin = OPMDataMerged[OPMDataMerged["PATCO"] == "2"]
8170907
CPU times: user 1min 49s, sys: 3.45 s, total: 1min 53s
Wall time: 1min 53s
In [43]:
display(OPMDataMergedProf.head())
print(len(OPMDataMergedProf))
SEP DATECODE AGELVL GSEGRD LOC PATCO TOA WORKSCH SALARY LOS AGELVLT LOCTYP LOCTYPT LOCT OCCTYP OCCTYPT OCCFAM OCCFAMT PATCOT PPTYP PPTYPT PPGROUP PPGROUPT TOATYP TOATYPT TOAT WSTYP WSTYPT WORKSCHT SEPCount_EFDATE_OCC SEPCount_EFDATE_LOC IndAvgSalary SalaryOverUnderIndAvg LowerLimitAge YearsToRetirement BLS_FEDERAL_OtherSep_Rate BLS_FEDERAL_Quits_Rate BLS_FEDERAL_TotalSep_Level BLS_FEDERAL_JobOpenings_Rate BLS_FEDERAL_OtherSep_Level BLS_FEDERAL_Quits_Level BLS_FEDERAL_JobOpenings_Level BLS_FEDERAL_Layoffs_Rate BLS_FEDERAL_Layoffs_Level BLS_FEDERAL_TotalSep_Rate SALARYLog LOSSqrt SEPCount_EFDATE_OCCLog SEPCount_EFDATE_LOCLog IndAvgSalaryLog
0 SC 201507 C 11.0 11 1 40 F 63722.0 0.8 25-29 1 United States 11-DISTRICT OF COLUMBIA 1 White Collar 09 09xx-LEGAL AND KINDRED Professional 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans 2 Non-permanent 40-Excepted Service - Schedule A 1 Full-time Full-time Nonseasonal 205.0 1319 64540.593830 -818.593830 25.0 32.0 0.4 0.5 34 2.6 11 13 74 0.4 10 1.2 11.062285 0.894427 5.323010 7.184629 11.075050
1 SC 201506 D 15.0 11 1 30 F 126245.0 4.8 30-34 1 United States 11-DISTRICT OF COLUMBIA 1 White Collar 09 09xx-LEGAL AND KINDRED Professional 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans 1 Permanent 30-Excepted Service - Schedule A 1 Full-time Full-time Nonseasonal 207.0 1132 149864.298504 -23619.298504 30.0 27.0 0.4 0.5 34 2.3 12 13 65 0.4 10 1.2 11.745980 2.190890 5.332719 7.031741 11.917485
8 SD 201509 I 14.0 06 1 10 F 135500.0 14.3 55-59 1 United States 06-CALIFORNIA 1 White Collar 08 08xx-ENGINEERING AND ARCHITECTURE Professional 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans 1 Permanent 10-Competitive Service - Career 1 Full-time Full-time Nonseasonal 122.0 1853 125803.916312 9696.083688 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.816727 3.781534 4.804021 7.524561 11.742480
11 SD 201503 J 14.0 08 1 10 F 128223.0 20.6 60-64 1 United States 08-COLORADO 1 White Collar 08 08xx-ENGINEERING AND ARCHITECTURE Professional 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans 1 Permanent 10-Competitive Service - Career 1 Full-time Full-time Nonseasonal 92.0 329 126328.546349 1894.453651 60.0 -3.0 0.3 0.4 31 3.0 9 10 86 0.5 12 1.1 11.761526 4.538722 4.521789 5.796058 11.746641
14 SA 201508 H 13.0 06 1 10 F 111566.0 24.3 50-54 1 United States 06-CALIFORNIA 1 White Collar 08 08xx-ENGINEERING AND ARCHITECTURE Professional 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans 1 Permanent 10-Competitive Service - Career 1 Full-time Full-time Nonseasonal 110.0 1606 105047.296509 6518.703491 50.0 7.0 0.5 0.6 41 2.3 14 17 67 0.3 10 1.5 11.622372 4.929503 4.700480 7.381502 11.562166
1283383
In [44]:
display(OPMDataMergedAdmin.head())
print(len(OPMDataMergedAdmin))
SEP DATECODE AGELVL GSEGRD LOC PATCO TOA WORKSCH SALARY LOS AGELVLT LOCTYP LOCTYPT LOCT OCCTYP OCCTYPT OCCFAM OCCFAMT PATCOT PPTYP PPTYPT PPGROUP PPGROUPT TOATYP TOATYPT TOAT WSTYP WSTYPT WORKSCHT SEPCount_EFDATE_OCC SEPCount_EFDATE_LOC IndAvgSalary SalaryOverUnderIndAvg LowerLimitAge YearsToRetirement BLS_FEDERAL_OtherSep_Rate BLS_FEDERAL_Quits_Rate BLS_FEDERAL_TotalSep_Level BLS_FEDERAL_JobOpenings_Rate BLS_FEDERAL_OtherSep_Level BLS_FEDERAL_Quits_Level BLS_FEDERAL_JobOpenings_Level BLS_FEDERAL_Layoffs_Rate BLS_FEDERAL_Layoffs_Level BLS_FEDERAL_TotalSep_Rate SALARYLog LOSSqrt SEPCount_EFDATE_OCCLog SEPCount_EFDATE_LOCLog IndAvgSalaryLog
2 SA 201503 H 11.0 48 2 10 F 66585.0 4.9 50-54 1 United States 48-TEXAS 1 White Collar 22 22xx-INFORMATION TECHNOLOGY Administrative 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans 1 Permanent 10-Competitive Service - Career 1 Full-time Full-time Nonseasonal 439.0 1087 71530.963755 -4945.963755 50.0 7.0 0.3 0.4 31 3.0 9 10 86 0.5 12 1.1 11.106235 2.213594 6.084499 6.991177 11.177886
3 SD 201506 I 15.0 35 2 10 F 156737.0 39.8 55-59 1 United States 35-NEW MEXICO 1 White Collar 03 03xx-GENERAL ADMIN, CLERICAL, & OFFICE SVCS Administrative 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans 1 Permanent 10-Competitive Service - Career 1 Full-time Full-time Nonseasonal 670.0 265 146735.220304 10001.779696 55.0 2.0 0.4 0.5 34 2.3 12 13 65 0.4 10 1.2 11.962325 6.308724 6.507278 5.579730 11.896385
4 SC 201509 H 13.0 06 2 15 F 92973.0 1.0 50-54 1 United States 06-CALIFORNIA 1 White Collar 03 03xx-GENERAL ADMIN, CLERICAL, & OFFICE SVCS Administrative 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans 1 Permanent 15-Competitive Service - Career-Conditional 1 Full-time Full-time Nonseasonal 721.0 1853 101641.124025 -8668.124025 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.440064 1.000000 6.580639 7.524561 11.529203
5 SD 201509 I 13.0 35 2 10 F 102943.0 11.3 55-59 1 United States 35-NEW MEXICO 1 White Collar 03 03xx-GENERAL ADMIN, CLERICAL, & OFFICE SVCS Administrative 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans 1 Permanent 10-Competitive Service - Career 1 Full-time Full-time Nonseasonal 721.0 557 101641.124025 1301.875975 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.541931 3.361547 6.580639 6.322565 11.529203
10 SA 201502 F 11.0 35 2 15 F 70621.0 9.7 40-44 1 United States 35-NEW MEXICO 1 White Collar 22 22xx-INFORMATION TECHNOLOGY Administrative 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans 1 Permanent 15-Competitive Service - Career-Conditional 1 Full-time Full-time Nonseasonal 390.0 169 71530.963755 -909.963755 40.0 17.0 0.3 0.4 26 3.2 8 10 91 0.3 8 1.0 11.165083 3.114482 5.966147 5.129899 11.177886
2131840

Sampling

In [45]:
#curious on stratum SEP counts for full remaining data
stratum = pd.DataFrame({'StratCount' : OPMDataMerged.groupby(["SEP"]).size()}).reset_index()

display(stratum)
SEP StratCount
0 NS 4101470
1 SA 17983
2 SB 257
3 SC 22021
4 SD 35304
5 SE 876
6 SF 1988
7 SG 788
8 SH 79
9 SI 2727
10 SJ 5926
11 SK 1575
12 SL 18
In [46]:
#Assess Stratum SEP Counts for Prof, for use in sampling
maxSize=7500
stratumProf = pd.DataFrame({'StratCount' : OPMDataMergedProf.groupby(["SEP"]).size()}).reset_index()

stratumProf.loc[stratumProf["StratCount"]>maxSize,"StratCountSample"] = maxSize
stratumProf.loc[stratumProf["StratCount"]<=maxSize,"StratCountSample"] = stratumProf["StratCount"]
#else: stratum["StratCountSample"] = stratum["StratCount"]

display(stratumProf)
SEP StratCount StratCountSample
0 NS 1259283 7500.0
1 SA 5463 5463.0
2 SB 85 85.0
3 SC 7423 7423.0
4 SD 8881 7500.0
5 SE 167 167.0
6 SF 338 338.0
7 SG 90 90.0
8 SH 15 15.0
9 SI 631 631.0
10 SJ 645 645.0
11 SK 355 355.0
12 SL 7 7.0
In [47]:
#Assess Stratum SEP Counts for Admin, for use in sampling
maxSize=7500
stratumAdmin = pd.DataFrame({'StratCount' : OPMDataMergedAdmin.groupby(["SEP"]).size()}).reset_index()

stratumAdmin.loc[stratumAdmin["StratCount"]>maxSize,"StratCountSample"] = maxSize
stratumAdmin.loc[stratumAdmin["StratCount"]<=maxSize,"StratCountSample"] = stratumAdmin["StratCount"]
#else: stratum["StratCountSample"] = stratum["StratCount"]

display(stratumAdmin)
SEP StratCount StratCountSample
0 NS 2087084 7500.0
1 SA 9252 7500.0
2 SB 145 145.0
3 SC 9156 7500.0
4 SD 19402 7500.0
5 SE 555 555.0
6 SF 995 995.0
7 SG 414 414.0
8 SH 39 39.0
9 SI 1196 1196.0
10 SJ 2771 2771.0
11 SK 820 820.0
12 SL 11 11.0
In [48]:
%%time
def aggStratPop(stratum, OPMDataMerged):
    AggStrat = []

    for i in range(0,len(stratum)):
        sep = stratum["SEP"].ix[i]
        StratCountSample = stratum["StratCountSample"].ix[i]
        print("Stratum Sample Size Calculations for SEP: {}".format(sep))   
        AggStrat.append(pd.DataFrame({'StratCount' : OPMDataMerged[OPMDataMerged["SEP"]==sep].groupby(["DATECODE", "AGELVL"]).size()}).reset_index())
        AggStrat[i]["SEP"] = sep
        AggStrat[i]["TotalCount"] = len(OPMDataMerged[OPMDataMerged["SEP"]==sep])
        AggStrat[i]["p"] = AggStrat[i]["StratCount"] / AggStrat[i]["TotalCount"]
        AggStrat[i]["StratCountSample"] = StratCountSample
        AggStrat[i]["StratSampleSize"] = round(AggStrat[i]["p"] * StratCountSample).apply(int)

        display(AggStrat[i].head())
        print("totalStratumSampleSize: ", AggStrat[i]["StratSampleSize"].sum())
        #print(len(AggStrat[i]))
    return AggStrat
CPU times: user 4 µs, sys: 0 ns, total: 4 µs
Wall time: 9.54 µs
In [49]:
def SampleStrata(stratum, OPMDataMerged, FileName):
    AggStrat = aggStratPop(stratum, OPMDataMerged)

    SampledOPMStratumDataList = []

    for i,StratSampleSize in enumerate(AggStrat):
        SampledOPMStratumData = []
        for j in range(0,len(StratSampleSize)):
            SEP = StratSampleSize["SEP"].ix[j]
            DATECODE = StratSampleSize["DATECODE"].ix[j]
            AGELVL = StratSampleSize["AGELVL"].ix[j]
            SampleSize = StratSampleSize["StratSampleSize"].ix[j]
            print(SEP, DATECODE, AGELVL, SampleSize)

            SampledOPMStratumDataList.append(OPMDataMerged[(OPMDataMerged["SEP"]==SEP) 
                                                    & (OPMDataMerged["DATECODE"]==DATECODE) 
                                                    & (OPMDataMerged["AGELVL"]==AGELVL)].sample(SampleSize,  random_state=SampleSize))
        SampledOPMStratumData.append(pd.concat(SampledOPMStratumDataList))
        clear_display()
    SampledOPMData = pd.concat(SampledOPMStratumData).reset_index()
    del SampledOPMData["index"]
    pickleObject(SampledOPMData, FileName)
    clear_display()

    return SampledOPMData

Using a seed value equal to each strata sample size, we take random samples according to the computed sizes above. We loop through each Separation Type's Aggregated Strata Sample Sizes; Identify all observations matching on Datecode, Separation Type, and AgeLevel; and finally sample those observations with the computed sample size.

In [50]:
%%time
##Prof Data Sampling
if os.path.isfile(PickleJarPath+"/SampledOPMDataProf.pkl"):
    print("Found the File! Loading Pickle Now!")
    SampledOPMDataProf = unpickleObject("SampledOPMDataProf")
else:
    SampledOPMDataProf= SampleStrata(stratumProf, OPMDataMergedProf, "SampledOPMDataProf")
Found the File! Loading Pickle Now!
CPU times: user 28.5 ms, sys: 1.26 ms, total: 29.7 ms
Wall time: 29.9 ms
In [51]:
%%time
print(len(SampledOPMDataProf))
display(SampledOPMDataProf.head())
display(pd.DataFrame({'StratCount' : SampledOPMDataProf.groupby(["SEP"]).size()}).reset_index())
30227
SEP DATECODE AGELVL GSEGRD LOC PATCO TOA WORKSCH SALARY LOS AGELVLT LOCTYP LOCTYPT LOCT OCCTYP OCCTYPT OCCFAM OCCFAMT PATCOT PPTYP PPTYPT PPGROUP PPGROUPT TOATYP TOATYPT TOAT WSTYP WSTYPT WORKSCHT SEPCount_EFDATE_OCC SEPCount_EFDATE_LOC IndAvgSalary SalaryOverUnderIndAvg LowerLimitAge YearsToRetirement BLS_FEDERAL_OtherSep_Rate BLS_FEDERAL_Quits_Rate BLS_FEDERAL_TotalSep_Level BLS_FEDERAL_JobOpenings_Rate BLS_FEDERAL_OtherSep_Level BLS_FEDERAL_Quits_Level BLS_FEDERAL_JobOpenings_Level BLS_FEDERAL_Layoffs_Rate BLS_FEDERAL_Layoffs_Level BLS_FEDERAL_TotalSep_Rate SALARYLog LOSSqrt SEPCount_EFDATE_OCCLog SEPCount_EFDATE_LOCLog IndAvgSalaryLog
0 NS 201412 B 11.0 51 1 15 F 77658.0 1.5 20-24 1 United States 51-VIRGINIA 1 White Collar 12 12xx-COPYRIGHT, PATENT, AND TRADE-MARK Professional 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans 1 Permanent 15-Competitive Service - Career-Conditional 1 Full-time Full-time Nonseasonal 26.0 1133 78919.462629 -1261.462629 20.0 37.0 0.5 0.4 30 2.2 12 10 62 0.3 7 1.1 11.260070 1.224745 3.258097 7.032624 11.276183
1 NS 201412 B 9.0 11 1 15 F 52146.0 2.9 20-24 1 United States 11-DISTRICT OF COLUMBIA 1 White Collar 11 11xx-BUSINESS AND INDUSTRY Professional 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans 1 Permanent 15-Competitive Service - Career-Conditional 1 Full-time Full-time Nonseasonal 274.0 1260 52460.545881 -314.545881 20.0 37.0 0.5 0.4 30 2.2 12 10 62 0.3 7 1.1 10.861803 1.702939 5.613128 7.138867 10.867817
2 NS 201412 B 9.0 53 1 15 F 57368.0 0.5 20-24 1 United States 53-WASHINGTON 1 White Collar 08 08xx-ENGINEERING AND ARCHITECTURE Professional 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans 1 Permanent 15-Competitive Service - Career-Conditional 1 Full-time Full-time Nonseasonal 7.0 555 58563.540541 -1195.540541 20.0 37.0 0.5 0.4 30 2.2 12 10 62 0.3 7 1.1 10.957242 0.707107 1.945910 6.318968 10.977868
3 NS 201412 B 7.0 25 1 15 F 42830.0 1.5 20-24 1 United States 25-MASSACHUSETTS 1 White Collar 05 05xx-ACCOUNTING AND BUDGET Professional 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans 1 Permanent 15-Competitive Service - Career-Conditional 1 Full-time Full-time Nonseasonal 82.0 304 43211.010135 -381.010135 20.0 37.0 0.5 0.4 30 2.2 12 10 62 0.3 7 1.1 10.664994 1.224745 4.406719 5.717028 10.673851
4 NS 201412 B 7.0 53 1 15 F 44615.0 2.5 20-24 1 United States 53-WASHINGTON 1 White Collar 08 08xx-ENGINEERING AND ARCHITECTURE Professional 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans 1 Permanent 15-Competitive Service - Career-Conditional 1 Full-time Full-time Nonseasonal 50.0 555 49854.574586 -5239.574586 20.0 37.0 0.5 0.4 30 2.2 12 10 62 0.3 7 1.1 10.705825 1.581139 3.912023 6.318968 10.816866
SEP StratCount
0 NS 7501
1 SA 5463
2 SB 85
3 SC 7423
4 SD 7507
5 SE 167
6 SF 338
7 SG 90
8 SH 15
9 SI 631
10 SJ 645
11 SK 355
12 SL 7
CPU times: user 60.4 ms, sys: 2.14 ms, total: 62.6 ms
Wall time: 54.1 ms
In [52]:
%%time
#### Analyze Missing Values
filtered_msnoData = msno.nullity_sort(msno.nullity_filter(SampledOPMDataProf, filter='bottom', n=15, p=0.999), sort='descending')
msno.matrix(filtered_msnoData)

del filtered_msnoData
/usr/local/es7/lib/python3.5/site-packages/matplotlib/axes/_base.py:2903: UserWarning: Attempting to set identical left==right results
in singular transformations; automatically expanding.
left=-0.5, right=-0.5
  'left=%s, right=%s') % (left, right))
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
CPU times: user 351 ms, sys: 250 ms, total: 601 ms
Wall time: 302 ms
In [53]:
%%time
##Admin Data Sampling
if os.path.isfile(PickleJarPath+"/SampledOPMDataAdmin.pkl"):
    print("Found the File! Loading Pickle Now!")
    SampledOPMDataAdmin = unpickleObject("SampledOPMDataAdmin")
else:
    SampledOPMDataAdmin= SampleStrata(stratumAdmin, OPMDataMergedAdmin, "SampledOPMDataAdmin")
Found the File! Loading Pickle Now!
CPU times: user 47.5 ms, sys: 61.9 ms, total: 109 ms
Wall time: 36.2 ms
In [54]:
%%time
print(len(SampledOPMDataAdmin))
display(SampledOPMDataAdmin.head())
display(pd.DataFrame({'StratCount' : SampledOPMDataAdmin.groupby(["SEP"]).size()}).reset_index())
36956
SEP DATECODE AGELVL GSEGRD LOC PATCO TOA WORKSCH SALARY LOS AGELVLT LOCTYP LOCTYPT LOCT OCCTYP OCCTYPT OCCFAM OCCFAMT PATCOT PPTYP PPTYPT PPGROUP PPGROUPT TOATYP TOATYPT TOAT WSTYP WSTYPT WORKSCHT SEPCount_EFDATE_OCC SEPCount_EFDATE_LOC IndAvgSalary SalaryOverUnderIndAvg LowerLimitAge YearsToRetirement BLS_FEDERAL_OtherSep_Rate BLS_FEDERAL_Quits_Rate BLS_FEDERAL_TotalSep_Level BLS_FEDERAL_JobOpenings_Rate BLS_FEDERAL_OtherSep_Level BLS_FEDERAL_Quits_Level BLS_FEDERAL_JobOpenings_Level BLS_FEDERAL_Layoffs_Rate BLS_FEDERAL_Layoffs_Level BLS_FEDERAL_TotalSep_Rate SALARYLog LOSSqrt SEPCount_EFDATE_OCCLog SEPCount_EFDATE_LOCLog IndAvgSalaryLog
0 NS 201412 B 7.0 11 2 38 F 42631.0 0.1 20-24 1 United States 11-DISTRICT OF COLUMBIA 1 White Collar 03 03xx-GENERAL ADMIN, CLERICAL, & OFFICE SVCS Administrative 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans 1 Permanent 38-Excepted Service - Other 1 Full-time Full-time Nonseasonal 774.0 1260 44891.572603 -2260.572603 20.0 37.0 0.5 0.4 30 2.2 12 10 62 0.3 7 1.1 10.660337 0.316228 6.651572 7.138867 10.712005
1 NS 201412 B 7.0 51 2 15 F 42631.0 5.0 20-24 1 United States 51-VIRGINIA 1 White Collar 11 11xx-BUSINESS AND INDUSTRY Administrative 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans 1 Permanent 15-Competitive Service - Career-Conditional 1 Full-time Full-time Nonseasonal 14.0 1133 45621.916667 -2990.916667 20.0 37.0 0.5 0.4 30 2.2 12 10 62 0.3 7 1.1 10.660337 2.236068 2.639057 7.032624 10.728144
2 NS 201412 B 9.0 51 2 10 F 48893.0 3.4 20-24 1 United States 51-VIRGINIA 1 White Collar 03 03xx-GENERAL ADMIN, CLERICAL, & OFFICE SVCS Administrative 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans 1 Permanent 10-Competitive Service - Career 1 Full-time Full-time Nonseasonal 774.0 1133 57175.047502 -8282.047502 20.0 37.0 0.5 0.4 30 2.2 12 10 62 0.3 7 1.1 10.797390 1.843909 6.651572 7.032624 10.953873
3 NS 201412 B 9.0 26 2 38 F 53828.0 1.7 20-24 1 United States 26-MICHIGAN 1 White Collar 21 21xx-TRANSPORTATION Administrative 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans 1 Permanent 38-Excepted Service - Other 1 Full-time Full-time Nonseasonal 80.0 214 56335.117117 -2507.117117 20.0 37.0 0.5 0.4 30 2.2 12 10 62 0.3 7 1.1 10.893549 1.303840 4.382027 5.365976 10.939073
4 NS 201412 B 7.0 34 2 48 F 41797.0 0.8 20-24 1 United States 34-NEW JERSEY 1 White Collar 00 00xx-MISCELLANEOUS OCCUPATIONS Administrative 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans 2 Non-permanent 48-Excepted Service - Other 1 Full-time Full-time Nonseasonal 113.0 233 44956.060811 -3159.060811 20.0 37.0 0.5 0.4 30 2.2 12 10 62 0.3 7 1.1 10.640580 0.894427 4.727388 5.451038 10.713441
SEP StratCount
0 NS 7498
1 SA 7501
2 SB 145
3 SC 7507
4 SD 7504
5 SE 555
6 SF 995
7 SG 414
8 SH 39
9 SI 1196
10 SJ 2771
11 SK 820
12 SL 11
CPU times: user 57.9 ms, sys: 15.7 ms, total: 73.6 ms
Wall time: 53.2 ms
In [55]:
%%time
#### Analyze Missing Values
filtered_msnoData = msno.nullity_sort(msno.nullity_filter(SampledOPMDataAdmin, filter='bottom', n=15, p=0.999), sort='descending')
msno.matrix(filtered_msnoData)

del filtered_msnoData
/usr/local/es7/lib/python3.5/site-packages/matplotlib/axes/_base.py:2903: UserWarning: Attempting to set identical left==right results
in singular transformations; automatically expanding.
left=-0.5, right=-0.5
  'left=%s, right=%s') % (left, right))
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
CPU times: user 367 ms, sys: 241 ms, total: 608 ms
Wall time: 307 ms
In [56]:
%%time
## Describe Summary for our Model Professional Subgroup for Modeling
display(SampledOPMDataProf.describe().transpose())
count mean std min 25% 50% 75% max
GSEGRD 30227.0 12.142588 1.757041 7.000000 11.000000 12.000000 13.000000 15.000000
SALARY 30227.0 95587.756278 31018.478638 39179.000000 73143.000000 90711.000000 113673.000000 364782.000000
LOS 30227.0 14.333047 12.159974 0.000000 4.600000 9.700000 24.800000 71.500000
SEPCount_EFDATE_OCC 30227.0 146.208820 161.039507 1.000000 32.000000 82.000000 207.000000 708.000000
SEPCount_EFDATE_LOC 30227.0 737.081086 496.100839 18.000000 310.000000 596.000000 1123.000000 2791.000000
IndAvgSalary 30227.0 94981.435573 29622.413408 39179.000000 70499.260612 86256.027972 106119.623016 220806.750000
SalaryOverUnderIndAvg 30227.0 606.320705 9947.104620 -119176.750000 -5362.868080 227.033473 6789.125828 147896.670738
LowerLimitAge 30227.0 46.216462 12.931906 20.000000 35.000000 50.000000 60.000000 65.000000
YearsToRetirement 30227.0 10.783538 12.931906 -8.000000 -3.000000 7.000000 22.000000 37.000000
BLS_FEDERAL_OtherSep_Rate 30227.0 0.429315 0.084823 0.300000 0.400000 0.400000 0.500000 0.600000
BLS_FEDERAL_Quits_Rate 30227.0 0.455067 0.068862 0.300000 0.400000 0.500000 0.500000 0.600000
BLS_FEDERAL_TotalSep_Level 30227.0 36.292950 8.526718 26.000000 31.000000 34.000000 38.000000 60.000000
BLS_FEDERAL_JobOpenings_Rate 30227.0 2.450402 0.390278 1.900000 2.200000 2.300000 2.800000 3.200000
BLS_FEDERAL_OtherSep_Level 30227.0 11.951368 2.383434 8.000000 10.000000 12.000000 12.000000 17.000000
BLS_FEDERAL_Quits_Level 30227.0 12.004565 2.058074 9.000000 10.000000 13.000000 13.000000 17.000000
BLS_FEDERAL_JobOpenings_Level 30227.0 69.714196 11.375094 55.000000 62.000000 67.000000 80.000000 91.000000
BLS_FEDERAL_Layoffs_Rate 30227.0 0.461144 0.216841 0.300000 0.400000 0.400000 0.500000 1.100000
BLS_FEDERAL_Layoffs_Level 30227.0 12.412942 5.974603 7.000000 10.000000 12.000000 12.000000 30.000000
BLS_FEDERAL_TotalSep_Rate 30227.0 1.314652 0.316763 1.000000 1.100000 1.200000 1.400000 2.200000
SALARYLog 30227.0 11.417742 0.315717 10.575896 11.200172 11.415434 11.641081 12.807055
LOSSqrt 30227.0 3.392935 1.679622 0.000000 2.144761 3.114482 4.979960 8.455767
SEPCount_EFDATE_OCCLog 30227.0 4.297617 1.332665 0.000000 3.465736 4.406719 5.332719 6.562444
SEPCount_EFDATE_LOCLog 30227.0 6.319419 0.823629 2.890372 5.736572 6.390241 7.023759 7.934155
IndAvgSalaryLog 30227.0 11.416091 0.298912 10.575896 11.163358 11.365075 11.572322 12.305043
CPU times: user 142 ms, sys: 87.2 ms, total: 229 ms
Wall time: 129 ms
In [57]:
#%%time

#OPMDataMerged.to_csv("OPMDataMerged.csv")
In [58]:
#os.path.getsize("OPMDataMerged.csv") #Display file size in bytes

Review Visualizations post-Data removal and sampling

Chris... can you use the SampledOPMDataProf dataset, and re-run the Visuals?

In [59]:
%%time


cols = list(SampledOPMDataProf.select_dtypes(include=['float64', 'int64']))
cols.remove('BLS_FEDERAL_OtherSep_Rate')
cols.remove('BLS_FEDERAL_Quits_Rate')
cols.remove('BLS_FEDERAL_TotalSep_Level')
cols.remove('BLS_FEDERAL_JobOpenings_Rate')
cols.remove('BLS_FEDERAL_OtherSep_Level')
cols.remove('BLS_FEDERAL_Quits_Level')
cols.remove('BLS_FEDERAL_JobOpenings_Level')
cols.remove('BLS_FEDERAL_Layoffs_Rate')
cols.remove('BLS_FEDERAL_Layoffs_Level')
cols.remove('BLS_FEDERAL_TotalSep_Rate')
cols.append('SEP')
display(cols)

plotNumeric = SampledOPMDataProf[cols]

# Create binary separation attribute for EDA correlation review
#plotNumeric["SEP_bin"] = plotNumeric.SEP.replace("NS", 1)
#plotNumeric.loc[plotNumeric['SEP_bin'] != 1, 'SEP_bin'] = 0
#plotNumeric.SEP_bin = plotNumeric.SEP_bin.apply(pd.to_numeric)
AttSplit = pd.get_dummies(plotNumeric['SEP'],prefix='SEP')
display(AttSplit.head())
plotNumeric = pd.concat((plotNumeric,AttSplit),axis=1) # add back into the dataframe

display(plotNumeric.head())
print("plotNumeric has {0} Records".format(len(plotNumeric)))
#print(plotNumeric.SEP_bin.dtype)
['GSEGRD',
 'SALARY',
 'LOS',
 'SEPCount_EFDATE_OCC',
 'SEPCount_EFDATE_LOC',
 'IndAvgSalary',
 'SalaryOverUnderIndAvg',
 'LowerLimitAge',
 'YearsToRetirement',
 'SALARYLog',
 'LOSSqrt',
 'SEPCount_EFDATE_OCCLog',
 'SEPCount_EFDATE_LOCLog',
 'IndAvgSalaryLog',
 'SEP']
SEP_NS SEP_SA SEP_SB SEP_SC SEP_SD SEP_SE SEP_SF SEP_SG SEP_SH SEP_SI SEP_SJ SEP_SK SEP_SL
0 1 0 0 0 0 0 0 0 0 0 0 0 0
1 1 0 0 0 0 0 0 0 0 0 0 0 0
2 1 0 0 0 0 0 0 0 0 0 0 0 0
3 1 0 0 0 0 0 0 0 0 0 0 0 0
4 1 0 0 0 0 0 0 0 0 0 0 0 0
GSEGRD SALARY LOS SEPCount_EFDATE_OCC SEPCount_EFDATE_LOC IndAvgSalary SalaryOverUnderIndAvg LowerLimitAge YearsToRetirement SALARYLog LOSSqrt SEPCount_EFDATE_OCCLog SEPCount_EFDATE_LOCLog IndAvgSalaryLog SEP SEP_NS SEP_SA SEP_SB SEP_SC SEP_SD SEP_SE SEP_SF SEP_SG SEP_SH SEP_SI SEP_SJ SEP_SK SEP_SL
0 11.0 77658.0 1.5 26.0 1133 78919.462629 -1261.462629 20.0 37.0 11.260070 1.224745 3.258097 7.032624 11.276183 NS 1 0 0 0 0 0 0 0 0 0 0 0 0
1 9.0 52146.0 2.9 274.0 1260 52460.545881 -314.545881 20.0 37.0 10.861803 1.702939 5.613128 7.138867 10.867817 NS 1 0 0 0 0 0 0 0 0 0 0 0 0
2 9.0 57368.0 0.5 7.0 555 58563.540541 -1195.540541 20.0 37.0 10.957242 0.707107 1.945910 6.318968 10.977868 NS 1 0 0 0 0 0 0 0 0 0 0 0 0
3 7.0 42830.0 1.5 82.0 304 43211.010135 -381.010135 20.0 37.0 10.664994 1.224745 4.406719 5.717028 10.673851 NS 1 0 0 0 0 0 0 0 0 0 0 0 0
4 7.0 44615.0 2.5 50.0 555 49854.574586 -5239.574586 20.0 37.0 10.705825 1.581139 3.912023 6.318968 10.816866 NS 1 0 0 0 0 0 0 0 0 0 0 0 0
plotNumeric has 30227 Records
CPU times: user 61 ms, sys: 2.3 ms, total: 63.3 ms
Wall time: 60.6 ms
In [60]:
%%time

sns.set(font_scale=1)
sns.pairplot(plotNumeric.drop(["SEP_NS", 
                               "SEP_SA", 
                               "SEP_SB", 
                               "SEP_SC", 
                               "SEP_SD", 
                               "SEP_SE", 
                               "SEP_SF", 
                               "SEP_SG", 
                               "SEP_SH", 
                               "SEP_SI", 
                               "SEP_SJ", 
                               "SEP_SK", 
                               "SEP_SL"
                              ], axis=1), hue = 'SEP', palette="hls", plot_kws={"s": 50})
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
CPU times: user 1min 44s, sys: 1min 45s, total: 3min 29s
Wall time: 1min 24s
In [61]:
%%time

# Function modified from https://stackoverflow.com/questions/29530355/plotting-multiple-histograms-in-grid
sns.set()

def draw_histograms(df, variables, n_rows, n_cols):
    fig=plt.figure(figsize=(20,20))
    for i, var_name in enumerate(variables):
        ax=fig.add_subplot(n_rows,n_cols,i+1)
        df[var_name].hist(bins=20,ax=ax, color='#58D68D')
        ax.set_title(var_name+" Distribution")
    fig.tight_layout()  # Improves appearance a bit.
    plt.show()

draw_histograms(plotNumeric.drop(['SEP',
                                  "SEP_NS", 
                               "SEP_SA", 
                               "SEP_SB", 
                               "SEP_SC", 
                               "SEP_SD", 
                               "SEP_SE", 
                               "SEP_SF", 
                               "SEP_SG", 
                               "SEP_SH", 
                               "SEP_SI", 
                               "SEP_SJ", 
                               "SEP_SK", 
                               "SEP_SL"
                              ], axis=1),
                plotNumeric.drop(['SEP',
                                  "SEP_NS", 
                               "SEP_SA", 
                               "SEP_SB", 
                               "SEP_SC", 
                               "SEP_SD", 
                               "SEP_SE", 
                               "SEP_SF", 
                               "SEP_SG", 
                               "SEP_SH", 
                               "SEP_SI", 
                               "SEP_SJ", 
                               "SEP_SK", 
                               "SEP_SL"
                              ], axis=1).columns, 6, 3)
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
CPU times: user 3.68 s, sys: 3.01 s, total: 6.69 s
Wall time: 3.09 s
In [62]:
%%time
# Inspired by http://seaborn.pydata.org/examples/many_pairwise_correlations.html

#plt.matshow(plotNumeric.corr())

sns.set(style='white')
corr = plotNumeric.drop(['SEP'], axis=1).corr()

# Generate a mask for the upper triangle
mask = np.zeros_like(corr, dtype=np.bool)
mask[np.triu_indices_from(mask, k=1)] = True

# Set up the matplotlib figure
f, ax = plt.subplots(figsize=(20, 20))

# Generate a custom diverging colormap
cmap = sns.diverging_palette(250, 10, as_cmap=True)

# Draw the heatmap with the mask and correct aspect ratio
sns.set(font_scale=0.95)
heatCorr = sns.heatmap(corr, mask=mask, cmap=cmap, vmax=1, vmin=-1,
                       square=True, annot=True, linewidths=1,
                       cbar_kws={"shrink": .5}, ax=ax, fmt='.1g')
#heatCorr.
ax.tick_params(labelsize=15)
cax = plt.gcf().axes[-1]
cax.tick_params(labelsize=15)

sns.plt.show()
#sns.heatmap(corr, annot=True, linewidths=0.01, cmap=cmap, ax=ax)
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
CPU times: user 3.48 s, sys: 928 ms, total: 4.41 s
Wall time: 3.36 s
In [63]:
%%time

cols = list(SampledOPMDataProf.select_dtypes(include=['object']))
dropCols = ["LOCTYP",
            "LOCTYPT",
            "OCCTYP",
            "OCCTYPT",
            "PPTYP",
            "PPTYPT",
            "AGYTYP",
            "OCCFAM",
            "PPGROUP",
            "PAYPLAN",
            "TOATYP",
            "WSTYP",
            "AGYSUBT",
            "AGELVL",
            "LOSLVL",
            "LOC",
            "OCC",
            "PATCO",
            "SALLVL",
            "TOA",
            "WORKSCH"]

for i in dropCols:
    if(i in list(SampledOPMDataProf.columns)): cols.remove(i)

plotCat = SampledOPMDataProf[cols]
display(plotCat.head())
print("plotCat Has {0} Records".format(len(plotCat)))
print("Number of colums = ", len(cols))
SEP DATECODE AGELVLT LOCT OCCFAMT PATCOT PPGROUPT TOATYPT TOAT WSTYPT WORKSCHT
0 NS 201412 20-24 51-VIRGINIA 12xx-COPYRIGHT, PATENT, AND TRADE-MARK Professional Standard GSEG Pay Plans Permanent 15-Competitive Service - Career-Conditional Full-time Full-time Nonseasonal
1 NS 201412 20-24 11-DISTRICT OF COLUMBIA 11xx-BUSINESS AND INDUSTRY Professional Standard GSEG Pay Plans Permanent 15-Competitive Service - Career-Conditional Full-time Full-time Nonseasonal
2 NS 201412 20-24 53-WASHINGTON 08xx-ENGINEERING AND ARCHITECTURE Professional Standard GSEG Pay Plans Permanent 15-Competitive Service - Career-Conditional Full-time Full-time Nonseasonal
3 NS 201412 20-24 25-MASSACHUSETTS 05xx-ACCOUNTING AND BUDGET Professional Standard GSEG Pay Plans Permanent 15-Competitive Service - Career-Conditional Full-time Full-time Nonseasonal
4 NS 201412 20-24 53-WASHINGTON 08xx-ENGINEERING AND ARCHITECTURE Professional Standard GSEG Pay Plans Permanent 15-Competitive Service - Career-Conditional Full-time Full-time Nonseasonal
plotCat Has 30227 Records
Number of colums =  11
CPU times: user 23.1 ms, sys: 1.3 ms, total: 24.4 ms
Wall time: 21.9 ms
In [64]:
%%time

for i in cols:
    if i != 'SEP':
        plt.figure(i) # Required to create new figure each loop rather than drawing over previous object
        f, (ax1, ax2) = plt.subplots(ncols=2, figsize=(20, 10), sharey=False)
        sns.countplot(y=i, data=plotCat, color="lightblue", ax=ax1);
        sns.countplot(y=i, data=plotCat, hue="SEP", palette="hls", ax=ax2);
        
    if i == 'AGYSUB':
        subCountPlot(i, 'SEP', 10000)
    elif i == 'LOCT':
        subCountPlot(i, 'SEP', 1000)
    elif i == 'OCCT':
        subCountPlot(i, 'SEP', 2000)
    elif i == 'PPGRD':
        subCountPlot(i, 'SEP', 6000)
    elif i == 'AGYT':
        subCountPlot(i, 'SEP', 3000)
CPU times: user 5.31 s, sys: 66.2 ms, total: 5.38 s
Wall time: 5.34 s
/usr/local/es7/lib/python3.5/site-packages/matplotlib/pyplot.py:524: RuntimeWarning: More than 20 figures have been opened. Figures created through the pyplot interface (`matplotlib.pyplot.figure`) are retained until explicitly closed and may consume too much memory. (To control this warning, see the rcParam `figure.max_open_warning`).
  max_open_warning, RuntimeWarning)
<matplotlib.figure.Figure at 0x7f9961841518>
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
<matplotlib.figure.Figure at 0x7f98f89fc630>
<matplotlib.figure.Figure at 0x7f990b9e6240>
<matplotlib.figure.Figure at 0x7f993bae6940>
<matplotlib.figure.Figure at 0x7f98f66ac518>
<matplotlib.figure.Figure at 0x7f9938e1f0f0>
<matplotlib.figure.Figure at 0x7f990e1b65f8>
<matplotlib.figure.Figure at 0x7f990de029b0>
<matplotlib.figure.Figure at 0x7f9a20c73438>
<matplotlib.figure.Figure at 0x7f98f82b67b8>
In [65]:
%%time

for i in cols:
    if i != 'SEP':
        percBarPlot(i, 'SEP', len(plotCat.SEP.drop_duplicates()))
CPU times: user 2.51 s, sys: 9.82 ms, total: 2.52 s
Wall time: 2.52 s
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
In [66]:
%%time

sns.set(style="whitegrid", palette="pastel", color_codes=True)

sns.violinplot(x="PATCOT", y="SALARY", data=SampledOPMDataProf, split=True,
               inner="quart")
sns.despine(left=True)
CPU times: user 1.62 s, sys: 11.1 s, total: 12.7 s
Wall time: 451 ms
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
In [67]:
%%time

# Draw a nested violinplot and split the violins for easier comparison
sns.violinplot(x="SEP", y="SALARY", data=SampledOPMDataProf, split=True,
               inner="box", scale="area", cut=0)
sns.despine(left=True)
CPU times: user 404 ms, sys: 231 ms, total: 635 ms
Wall time: 357 ms
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
In [68]:
#%%time
#
#sns.factorplot(x="SEP", y="SALARY", col="PATCOT",
#               data=SampledOPMDataProf,
#               kind="violin", split=True, aspect=.5, size=15);
In [69]:
#%%time
#
#sns.factorplot(x="SEP", y="SALARY", col="PATCOT", data=SampledOPMDataProf,
#               kind="violin", split=True, aspect=.4, size=10);
In [70]:
%%time

g = sns.PairGrid(data=SampledOPMDataProf,
                 x_vars=["SEP","PATCOT"],
                 y_vars=["SALARY", "LOS", "LowerLimitAge", "YearsToRetirement"],
                 aspect=1, size=10)
g.map(sns.violinplot, palette="pastel", inner="quart");
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
CPU times: user 7.96 s, sys: 38 s, total: 46 s
Wall time: 3.47 s

There are several separation types we would like to either roll up, or remove altogether.

We have chosen to roll separation into two Binary Categories.

1) NS, Non-Separation comprised of: a) NS, Non-Separation b) SA,Transfer Out - Individual Transfer c) SB,Transfer Out - Mass Transfer d) SD,Retirement - Voluntary e) SE,Retirement - Early Out f) SF,Retirement - Disability g) SG,Retirement - Other

2) SC, Quit

In [71]:
SampledOPMDataProf = SampledOPMDataProf[((SampledOPMDataProf["SEP"] == "NS") | (SampledOPMDataProf["SEP"] == "SD") | (SampledOPMDataProf["SEP"] == "SE") | (SampledOPMDataProf["SEP"] == "SF") | (SampledOPMDataProf["SEP"] == "SH") | (SampledOPMDataProf["SEP"] == "SA") | (SampledOPMDataProf["SEP"] == "SB") | (SampledOPMDataProf["SEP"] == "SC"))]

SampledOPMDataProf.loc[(SampledOPMDataProf["SEP"] != "SC") , "SEP"]="NS"

SampledOPMDataAdmin = SampledOPMDataAdmin[((SampledOPMDataAdmin["SEP"] == "NS") | (SampledOPMDataAdmin["SEP"] == "SD") | (SampledOPMDataAdmin["SEP"] == "SE") | (SampledOPMDataAdmin["SEP"] == "SF") | (SampledOPMDataAdmin["SEP"] == "SH") | (SampledOPMDataAdmin["SEP"] == "SA") | (SampledOPMDataAdmin["SEP"] == "SB") | (SampledOPMDataAdmin["SEP"] == "SC"))]

SampledOPMDataAdmin.loc[(SampledOPMDataAdmin["SEP"] != "SC") , "SEP"]="NS"
In [72]:
#Assess Stratum SEP Counts for Prof, for use in sampling
maxSize=7500
stratumProf = pd.DataFrame({'StratCount' : SampledOPMDataProf.groupby(["SEP"]).size()}).reset_index()

stratumProf.loc[stratumProf["StratCount"]>maxSize,"StratCountSample"] = maxSize
stratumProf.loc[stratumProf["StratCount"]<=maxSize,"StratCountSample"] = stratumProf["StratCount"]
#else: stratum["StratCountSample"] = stratum["StratCount"]

display(stratumProf)
SEP StratCount StratCountSample
0 NS 21076 7500.0
1 SC 7423 7423.0
In [73]:
#Assess Stratum SEP Counts for Admin, for use in sampling
maxSize=7500
stratumAdmin = pd.DataFrame({'StratCount' : SampledOPMDataAdmin.groupby(["SEP"]).size()}).reset_index()

stratumAdmin.loc[stratumAdmin["StratCount"]>maxSize,"StratCountSample"] = maxSize
stratumAdmin.loc[stratumAdmin["StratCount"]<=maxSize,"StratCountSample"] = stratumAdmin["StratCount"]
#else: stratum["StratCountSample"] = stratum["StratCount"]

display(stratumAdmin)
SEP StratCount StratCountSample
0 NS 24237 7500.0
1 SC 7507 7500.0
In [74]:
SampledOPMDataProf= SampleStrata(stratumProf, SampledOPMDataProf, "SampledOPMDataProfBinary")
SampledOPMDataAdmin= SampleStrata(stratumProf, SampledOPMDataAdmin, "SampledOPMDataProfBinary")
Stratum Sample Size Calculations for SEP: NS
DATECODE AGELVL StratCount SEP TotalCount p StratCountSample StratSampleSize
0 201410 B 2 NS 21076 0.000095 7500.0 1
1 201410 C 57 NS 21076 0.002704 7500.0 20
2 201410 D 85 NS 21076 0.004033 7500.0 30
3 201410 E 73 NS 21076 0.003464 7500.0 26
4 201410 F 74 NS 21076 0.003511 7500.0 26
totalStratumSampleSize:  7497
Stratum Sample Size Calculations for SEP: SC
DATECODE AGELVL StratCount SEP TotalCount p StratCountSample StratSampleSize
0 201410 B 10 SC 7423 0.001347 7423.0 10
1 201410 C 92 SC 7423 0.012394 7423.0 92
2 201410 D 154 SC 7423 0.020746 7423.0 154
3 201410 E 118 SC 7423 0.015897 7423.0 118
4 201410 F 80 SC 7423 0.010777 7423.0 80
totalStratumSampleSize:  7423
NS 201410 B 1
NS 201410 C 20
NS 201410 D 30
NS 201410 E 26
NS 201410 F 26
NS 201410 G 27
NS 201410 H 25
NS 201410 I 66
NS 201410 J 77
NS 201410 K 68
NS 201411 B 1
NS 201411 C 25
NS 201411 D 42
NS 201411 E 35
NS 201411 F 34
NS 201411 G 26
NS 201411 H 34
NS 201411 I 59
NS 201411 J 56
NS 201411 K 42
NS 201412 B 5
NS 201412 C 53
NS 201412 D 99
NS 201412 E 95
NS 201412 F 90
NS 201412 G 99
NS 201412 H 134
NS 201412 I 192
NS 201412 J 200
NS 201412 K 169
NS 201501 B 1
NS 201501 C 12
NS 201501 D 27
NS 201501 E 30
NS 201501 F 19
NS 201501 G 26
NS 201501 H 32
NS 201501 I 182
NS 201501 J 218
NS 201501 K 190
NS 201502 B 1
NS 201502 C 16
NS 201502 D 23
NS 201502 E 18
NS 201502 F 17
NS 201502 G 16
NS 201502 H 27
NS 201502 I 51
NS 201502 J 67
NS 201502 K 49
NS 201503 B 6
NS 201503 C 57
NS 201503 D 117
NS 201503 E 108
NS 201503 F 105
NS 201503 G 118
NS 201503 H 140
NS 201503 I 142
NS 201503 J 133
NS 201503 K 81
NS 201504 C 14
NS 201504 D 27
NS 201504 E 29
NS 201504 F 25
NS 201504 G 20
NS 201504 H 31
NS 201504 I 54
NS 201504 J 67
NS 201504 K 64
NS 201505 B 1
NS 201505 C 23
NS 201505 D 41
NS 201505 E 39
NS 201505 F 35
NS 201505 G 37
NS 201505 H 40
NS 201505 I 105
NS 201505 J 112
NS 201505 K 93
NS 201506 B 8
NS 201506 C 59
NS 201506 D 114
NS 201506 E 107
NS 201506 F 96
NS 201506 G 102
NS 201506 H 137
NS 201506 I 159
NS 201506 J 149
NS 201506 K 94
NS 201507 B 1
NS 201507 C 18
NS 201507 D 29
NS 201507 E 33
NS 201507 F 23
NS 201507 G 21
NS 201507 H 28
NS 201507 I 80
NS 201507 J 89
NS 201507 K 78
NS 201508 B 0
NS 201508 C 18
NS 201508 D 34
NS 201508 E 22
NS 201508 F 21
NS 201508 G 22
NS 201508 H 30
NS 201508 I 54
NS 201508 J 70
NS 201508 K 50
NS 201509 B 7
NS 201509 C 57
NS 201509 D 121
NS 201509 E 111
NS 201509 F 99
NS 201509 G 110
NS 201509 H 134
NS 201509 I 151
NS 201509 J 130
NS 201509 K 89
SC 201410 B 10
SC 201410 C 92
SC 201410 D 154
SC 201410 E 118
SC 201410 F 80
SC 201410 G 61
SC 201410 H 64
SC 201410 I 48
SC 201410 J 24
SC 201410 K 11
SC 201411 B 6
SC 201411 C 72
SC 201411 D 90
SC 201411 E 85
SC 201411 F 70
SC 201411 G 55
SC 201411 H 61
SC 201411 I 40
SC 201411 J 17
SC 201411 K 7
SC 201412 B 3
SC 201412 C 63
SC 201412 D 103
SC 201412 E 81
SC 201412 F 66
SC 201412 G 45
SC 201412 H 47
SC 201412 I 43
SC 201412 J 12
SC 201412 K 14
SC 201501 B 4
SC 201501 C 106
SC 201501 D 132
SC 201501 E 122
SC 201501 F 95
SC 201501 G 71
SC 201501 H 72
SC 201501 I 42
SC 201501 J 23
SC 201501 K 9
SC 201502 B 6
SC 201502 C 63
SC 201502 D 98
SC 201502 E 79
SC 201502 F 71
SC 201502 G 49
SC 201502 H 50
SC 201502 I 44
SC 201502 J 16
SC 201502 K 12
SC 201503 B 9
SC 201503 C 60
SC 201503 D 101
SC 201503 E 91
SC 201503 F 52
SC 201503 G 56
SC 201503 H 38
SC 201503 I 38
SC 201503 J 21
SC 201503 K 11
SC 201504 B 11
SC 201504 C 86
SC 201504 D 104
SC 201504 E 72
SC 201504 F 58
SC 201504 G 58
SC 201504 H 56
SC 201504 I 36
SC 201504 J 13
SC 201504 K 12
SC 201505 B 19
SC 201505 C 140
SC 201505 D 162
SC 201505 E 105
SC 201505 F 105
SC 201505 G 72
SC 201505 H 66
SC 201505 I 56
SC 201505 J 28
SC 201505 K 11
SC 201506 B 16
SC 201506 C 109
SC 201506 D 139
SC 201506 E 126
SC 201506 F 84
SC 201506 G 76
SC 201506 H 68
SC 201506 I 45
SC 201506 J 21
SC 201506 K 16
SC 201507 B 24
SC 201507 C 139
SC 201507 D 141
SC 201507 E 120
SC 201507 F 103
SC 201507 G 71
SC 201507 H 57
SC 201507 I 56
SC 201507 J 29
SC 201507 K 15
SC 201508 B 17
SC 201508 C 105
SC 201508 D 164
SC 201508 E 140
SC 201508 F 91
SC 201508 G 82
SC 201508 H 65
SC 201508 I 48
SC 201508 J 15
SC 201508 K 6
SC 201509 B 12
SC 201509 C 102
SC 201509 D 160
SC 201509 E 97
SC 201509 F 87
SC 201509 G 69
SC 201509 H 66
SC 201509 I 45
SC 201509 J 29
SC 201509 K 15
Stratum Sample Size Calculations for SEP: NS
DATECODE AGELVL StratCount SEP TotalCount p StratCountSample StratSampleSize
0 201410 B 3 NS 24237 0.000124 7500.0 1
1 201410 C 57 NS 24237 0.002352 7500.0 18
2 201410 D 133 NS 24237 0.005487 7500.0 41
3 201410 E 98 NS 24237 0.004043 7500.0 30
4 201410 F 114 NS 24237 0.004704 7500.0 35
totalStratumSampleSize:  7495
Stratum Sample Size Calculations for SEP: SC
DATECODE AGELVL StratCount SEP TotalCount p StratCountSample StratSampleSize
0 201410 B 16 SC 7507 0.002131 7423.0 16
1 201410 C 77 SC 7507 0.010257 7423.0 76
2 201410 D 142 SC 7507 0.018916 7423.0 140
3 201410 E 110 SC 7507 0.014653 7423.0 109
4 201410 F 66 SC 7507 0.008792 7423.0 65
totalStratumSampleSize:  7423
NS 201410 B 1
NS 201410 C 18
NS 201410 D 41
NS 201410 E 30
NS 201410 F 35
NS 201410 G 42
NS 201410 H 53
NS 201410 I 75
NS 201410 J 66
NS 201410 K 36
NS 201411 B 2
NS 201411 C 19
NS 201411 D 42
NS 201411 E 39
NS 201411 F 46
NS 201411 G 45
NS 201411 H 52
NS 201411 I 70
NS 201411 J 48
NS 201411 K 31
NS 201412 B 2
NS 201412 C 32
NS 201412 D 71
NS 201412 E 79
NS 201412 F 86
NS 201412 G 127
NS 201412 H 174
NS 201412 I 207
NS 201412 J 189
NS 201412 K 128
NS 201501 B 1
NS 201501 C 14
NS 201501 D 24
NS 201501 E 30
NS 201501 F 35
NS 201501 G 35
NS 201501 H 51
NS 201501 I 189
NS 201501 J 191
NS 201501 K 121
NS 201502 B 2
NS 201502 C 18
NS 201502 D 28
NS 201502 E 25
NS 201502 F 27
NS 201502 G 36
NS 201502 H 37
NS 201502 I 58
NS 201502 J 52
NS 201502 K 30
NS 201503 B 2
NS 201503 C 38
NS 201503 D 88
NS 201503 E 92
NS 201503 F 91
NS 201503 G 132
NS 201503 H 173
NS 201503 I 156
NS 201503 J 110
NS 201503 K 61
NS 201504 B 1
NS 201504 C 13
NS 201504 D 30
NS 201504 E 28
NS 201504 F 33
NS 201504 G 31
NS 201504 H 45
NS 201504 I 71
NS 201504 J 61
NS 201504 K 39
NS 201505 B 0
NS 201505 C 21
NS 201505 D 50
NS 201505 E 43
NS 201505 F 40
NS 201505 G 47
NS 201505 H 69
NS 201505 I 112
NS 201505 J 93
NS 201505 K 63
NS 201506 B 2
NS 201506 C 35
NS 201506 D 79
NS 201506 E 86
NS 201506 F 90
NS 201506 G 125
NS 201506 H 163
NS 201506 I 179
NS 201506 J 121
NS 201506 K 68
NS 201507 B 0
NS 201507 C 12
NS 201507 D 42
NS 201507 E 31
NS 201507 F 33
NS 201507 G 42
NS 201507 H 67
NS 201507 I 101
NS 201507 J 85
NS 201507 K 50
NS 201508 B 1
NS 201508 C 11
NS 201508 D 33
NS 201508 E 33
NS 201508 F 26
NS 201508 G 40
NS 201508 H 53
NS 201508 I 67
NS 201508 J 56
NS 201508 K 33
NS 201509 B 3
NS 201509 C 40
NS 201509 D 89
NS 201509 E 103
NS 201509 F 98
NS 201509 G 138
NS 201509 H 176
NS 201509 I 176
NS 201509 J 126
NS 201509 K 59
SC 201410 B 16
SC 201410 C 76
SC 201410 D 140
SC 201410 E 109
SC 201410 F 65
SC 201410 G 91
SC 201410 H 88
SC 201410 I 46
SC 201410 J 25
SC 201410 K 8
SC 201411 B 7
SC 201411 C 66
SC 201411 D 94
SC 201411 E 90
SC 201411 F 80
SC 201411 G 75
SC 201411 H 70
SC 201411 I 38
SC 201411 J 11
SC 201411 K 7
SC 201412 B 2
SC 201412 C 59
SC 201412 D 92
SC 201412 E 67
SC 201412 F 56
SC 201412 G 61
SC 201412 H 65
SC 201412 I 39
SC 201412 J 18
SC 201412 K 6
SC 201501 B 5
SC 201501 C 60
SC 201501 D 123
SC 201501 E 114
SC 201501 F 96
SC 201501 G 79
SC 201501 H 78
SC 201501 I 58
SC 201501 J 21
SC 201501 K 6
SC 201502 B 11
SC 201502 C 60
SC 201502 D 105
SC 201502 E 73
SC 201502 F 72
SC 201502 G 69
SC 201502 H 74
SC 201502 I 47
SC 201502 J 17
SC 201502 K 6
SC 201503 B 6
SC 201503 C 72
SC 201503 D 114
SC 201503 E 96
SC 201503 F 52
SC 201503 G 69
SC 201503 H 86
SC 201503 I 47
SC 201503 J 17
SC 201503 K 7
SC 201504 B 11
SC 201504 C 65
SC 201504 D 127
SC 201504 E 85
SC 201504 F 92
SC 201504 G 71
SC 201504 H 77
SC 201504 I 38
SC 201504 J 16
SC 201504 K 3
SC 201505 B 20
SC 201505 C 87
SC 201505 D 142
SC 201505 E 124
SC 201505 F 89
SC 201505 G 87
SC 201505 H 92
SC 201505 I 57
SC 201505 J 28
SC 201505 K 13
SC 201506 B 22
SC 201506 C 69
SC 201506 D 117
SC 201506 E 97
SC 201506 F 92
SC 201506 G 75
SC 201506 H 64
SC 201506 I 49
SC 201506 J 12
SC 201506 K 9
SC 201507 B 20
SC 201507 C 97
SC 201507 D 141
SC 201507 E 119
SC 201507 F 110
SC 201507 G 96
SC 201507 H 82
SC 201507 I 37
SC 201507 J 21
SC 201507 K 7
SC 201508 B 25
SC 201508 C 100
SC 201508 D 135
SC 201508 E 112
SC 201508 F 92
SC 201508 G 93
SC 201508 H 74
SC 201508 I 44
SC 201508 J 15
SC 201508 K 5
SC 201509 B 11
SC 201509 C 65
SC 201509 D 128
SC 201509 E 117
SC 201509 F 100
SC 201509 G 94
SC 201509 H 73
SC 201509 I 48
SC 201509 J 16
SC 201509 K 9
In [ ]:
 

Review Visualizations post-Data removal and second round of sampling

In [75]:
%%time


cols = list(SampledOPMDataProf.select_dtypes(include=['float64', 'int64']))
cols.remove('BLS_FEDERAL_OtherSep_Rate')
cols.remove('BLS_FEDERAL_Quits_Rate')
cols.remove('BLS_FEDERAL_TotalSep_Level')
cols.remove('BLS_FEDERAL_JobOpenings_Rate')
cols.remove('BLS_FEDERAL_OtherSep_Level')
cols.remove('BLS_FEDERAL_Quits_Level')
cols.remove('BLS_FEDERAL_JobOpenings_Level')
cols.remove('BLS_FEDERAL_Layoffs_Rate')
cols.remove('BLS_FEDERAL_Layoffs_Level')
cols.remove('BLS_FEDERAL_TotalSep_Rate')
cols.append('SEP')
display(cols)

plotNumeric = SampledOPMDataProf[cols]

# Create binary separation attribute for EDA correlation review
#plotNumeric["SEP_bin"] = plotNumeric.SEP.replace("NS", 1)
#plotNumeric.loc[plotNumeric['SEP_bin'] != 1, 'SEP_bin'] = 0
#plotNumeric.SEP_bin = plotNumeric.SEP_bin.apply(pd.to_numeric)
AttSplit = pd.get_dummies(plotNumeric['SEP'],prefix='SEP')
display(AttSplit.head())
plotNumeric = pd.concat((plotNumeric,AttSplit),axis=1) # add back into the dataframe

display(plotNumeric.head())
print("plotNumeric has {0} Records".format(len(plotNumeric)))
#print(plotNumeric.SEP_bin.dtype)
['GSEGRD',
 'SALARY',
 'LOS',
 'SEPCount_EFDATE_OCC',
 'SEPCount_EFDATE_LOC',
 'IndAvgSalary',
 'SalaryOverUnderIndAvg',
 'LowerLimitAge',
 'YearsToRetirement',
 'SALARYLog',
 'LOSSqrt',
 'SEPCount_EFDATE_OCCLog',
 'SEPCount_EFDATE_LOCLog',
 'IndAvgSalaryLog',
 'SEP']
SEP_NS SEP_SC
0 1 0
1 1 0
2 1 0
3 1 0
4 1 0
GSEGRD SALARY LOS SEPCount_EFDATE_OCC SEPCount_EFDATE_LOC IndAvgSalary SalaryOverUnderIndAvg LowerLimitAge YearsToRetirement SALARYLog LOSSqrt SEPCount_EFDATE_OCCLog SEPCount_EFDATE_LOCLog IndAvgSalaryLog SEP SEP_NS SEP_SC
0 11.0 61857.0 4.7 336.0 470 65898.205859 -4041.205859 20.0 37.0 11.032581 2.167948 5.817111 6.152733 11.095866 NS 1 0
1 12.0 71813.0 7.2 336.0 513 81218.917413 -9405.917413 25.0 32.0 11.181821 2.683282 5.817111 6.240276 11.304903 NS 1 0
2 11.0 63091.0 4.0 336.0 923 65898.205859 -2807.205859 25.0 32.0 11.052333 2.000000 5.817111 6.827629 11.095866 NS 1 0
3 12.0 75621.0 5.8 75.0 923 82168.243394 -6547.243394 25.0 32.0 11.233489 2.408319 4.317488 6.827629 11.316524 NS 1 0
4 13.0 95919.0 2.0 63.0 923 121938.733696 -26019.733696 25.0 32.0 11.471259 1.414214 4.143135 6.827629 11.711274 NS 1 0
plotNumeric has 14920 Records
CPU times: user 32.8 ms, sys: 3.22 ms, total: 36 ms
Wall time: 32.5 ms
In [76]:
%%time

sns.set(font_scale=1)
sns.pairplot(plotNumeric.drop(['SEP_NS',
                               'SEP_SC'], axis=1), hue = 'SEP', palette="hls", plot_kws={"s": 50})
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
CPU times: user 47.3 s, sys: 43.7 s, total: 1min 31s
Wall time: 39 s
In [77]:
%%time

# Function modified from https://stackoverflow.com/questions/29530355/plotting-multiple-histograms-in-grid
sns.set()

def draw_histograms(df, variables, n_rows, n_cols):
    fig=plt.figure(figsize=(20,20))
    for i, var_name in enumerate(variables):
        ax=fig.add_subplot(n_rows,n_cols,i+1)
        df[var_name].hist(bins=20,ax=ax, color='#58D68D')
        ax.set_title(var_name+" Distribution")
    fig.tight_layout()  # Improves appearance a bit.
    plt.show()

draw_histograms(plotNumeric.drop(['SEP',
                                  'SEP_NS',
                                  'SEP_SC'
                                 ], axis=1),
                plotNumeric.drop(['SEP',
                                  'SEP_NS',
                                  'SEP_SC'
                                 ], axis=1).columns, 6, 3)
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
CPU times: user 4.64 s, sys: 3.11 s, total: 7.75 s
Wall time: 4.06 s
In [78]:
%%time
# Inspired by http://seaborn.pydata.org/examples/many_pairwise_correlations.html

#plt.matshow(plotNumeric.corr())

sns.set(style='white')
corr = plotNumeric.drop(['SEP'], axis=1).corr()

# Generate a mask for the upper triangle
mask = np.zeros_like(corr, dtype=np.bool)
mask[np.triu_indices_from(mask, k=1)] = True

# Set up the matplotlib figure
f, ax = plt.subplots(figsize=(20, 20))

# Generate a custom diverging colormap
cmap = sns.diverging_palette(250, 10, as_cmap=True)

# Draw the heatmap with the mask and correct aspect ratio
sns.set(font_scale=0.95)
heatCorr = sns.heatmap(corr, mask=mask, cmap=cmap, vmax=1, vmin=-1,
                       square=True, annot=True, linewidths=1,
                       cbar_kws={"shrink": .5}, ax=ax, fmt='.1g')
#heatCorr.
ax.tick_params(labelsize=15)
cax = plt.gcf().axes[-1]
cax.tick_params(labelsize=15)

sns.plt.show()
#sns.heatmap(corr, annot=True, linewidths=0.01, cmap=cmap, ax=ax)
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
CPU times: user 1.76 s, sys: 904 ms, total: 2.66 s
Wall time: 1.62 s
In [79]:
%%time

cols = list(SampledOPMDataProf.select_dtypes(include=['object']))
dropCols = ["LOCTYP",
            "LOCTYPT",
            "OCCTYP",
            "OCCTYPT",
            "PPTYP",
            "PPTYPT",
            "AGYTYP",
            "OCCFAM",
            "PPGROUP",
            "PAYPLAN",
            "TOATYP",
            "WSTYP",
            "AGYSUBT",
            "AGELVL",
            "LOSLVL",
            "LOC",
            "OCC",
            "PATCO",
            "SALLVL",
            "TOA",
            "WORKSCH"]

for i in dropCols:
    if(i in list(SampledOPMDataProf.columns)): cols.remove(i)

plotCat = SampledOPMDataProf[cols]
display(plotCat.head())
print("plotCat Has {0} Records".format(len(plotCat)))
print("Number of colums = ", len(cols))
SEP DATECODE AGELVLT LOCT OCCFAMT PATCOT PPGROUPT TOATYPT TOAT WSTYPT WORKSCHT
0 NS 201410 20-24 42-PENNSYLVANIA 11xx-BUSINESS AND INDUSTRY Professional Standard GSEG Pay Plans Permanent 10-Competitive Service - Career Full-time Full-time Nonseasonal
1 NS 201410 25-29 49-UTAH 11xx-BUSINESS AND INDUSTRY Professional Standard GSEG Pay Plans Permanent 10-Competitive Service - Career Full-time Full-time Nonseasonal
2 NS 201410 25-29 24-MARYLAND 11xx-BUSINESS AND INDUSTRY Professional Standard GSEG Pay Plans Permanent 38-Excepted Service - Other Full-time Full-time Nonseasonal
3 NS 201410 25-29 24-MARYLAND 05xx-ACCOUNTING AND BUDGET Professional Standard GSEG Pay Plans Permanent 10-Competitive Service - Career Full-time Full-time Nonseasonal
4 NS 201410 25-29 24-MARYLAND 06xx-MEDICAL, HOSPITAL, DENTAL & PUB HEALTH Professional Standard GSEG Pay Plans Permanent 15-Competitive Service - Career-Conditional Full-time Full-time Nonseasonal
plotCat Has 14920 Records
Number of colums =  11
CPU times: user 20.1 ms, sys: 694 µs, total: 20.8 ms
Wall time: 18.3 ms
In [80]:
%%time

for i in cols:
    if i != 'SEP':
        plt.figure(i) # Required to create new figure each loop rather than drawing over previous object
        f, (ax1, ax2) = plt.subplots(ncols=2, figsize=(20, 10), sharey=False)
        sns.countplot(y=i, data=plotCat, color="lightblue", ax=ax1);
        sns.countplot(y=i, data=plotCat, hue="SEP", palette="hls", ax=ax2);
        
    if i == 'AGYSUB':
        subCountPlot(i, 'SEP', 10000)
    elif i == 'LOCT':
        subCountPlot(i, 'SEP', 1000)
    elif i == 'OCCT':
        subCountPlot(i, 'SEP', 2000)
    elif i == 'PPGRD':
        subCountPlot(i, 'SEP', 6000)
    elif i == 'AGYT':
        subCountPlot(i, 'SEP', 3000)
CPU times: user 2.58 s, sys: 51 ms, total: 2.63 s
Wall time: 2.6 s
/usr/local/es7/lib/python3.5/site-packages/matplotlib/pyplot.py:524: RuntimeWarning: More than 20 figures have been opened. Figures created through the pyplot interface (`matplotlib.pyplot.figure`) are retained until explicitly closed and may consume too much memory. (To control this warning, see the rcParam `figure.max_open_warning`).
  max_open_warning, RuntimeWarning)
<matplotlib.figure.Figure at 0x7f99339e8780>
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
<matplotlib.figure.Figure at 0x7f9946cb95f8>
<matplotlib.figure.Figure at 0x7f9935b9bb70>
<matplotlib.figure.Figure at 0x7f98f89f9eb8>
<matplotlib.figure.Figure at 0x7f994640d9b0>
<matplotlib.figure.Figure at 0x7f98f8768048>
<matplotlib.figure.Figure at 0x7f98f2f0b518>
<matplotlib.figure.Figure at 0x7f9a1b9b0a90>
<matplotlib.figure.Figure at 0x7f9a19931cc0>
<matplotlib.figure.Figure at 0x7f98f658cc50>
In [81]:
%%time

for i in cols:
    if i != 'SEP':
        percBarPlot(i, 'SEP', len(plotCat.SEP.drop_duplicates()))
CPU times: user 1.28 s, sys: 39.4 ms, total: 1.32 s
Wall time: 1.28 s
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
In [82]:
%%time

sns.set(style="whitegrid", palette="pastel", color_codes=True)

sns.violinplot(x="PATCOT", y="SALARY", data=SampledOPMDataProf, split=True,
               inner="quart")
sns.despine(left=True)
CPU times: user 1.35 s, sys: 8.04 s, total: 9.38 s
Wall time: 334 ms
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
In [83]:
%%time

# Draw a nested violinplot and split the violins for easier comparison
sns.violinplot(x="SEP", y="SALARY", data=SampledOPMDataProf, split=True,
               inner="box", scale="area", cut=0)
sns.despine(left=True)
CPU times: user 158 ms, sys: 111 ms, total: 269 ms
Wall time: 131 ms
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
In [84]:
#%%time
#
#sns.factorplot(x="SEP", y="SALARY", col="PATCOT",
#               data=SampledOPMDataProf,
#               kind="violin", split=True, aspect=.5, size=15);
In [85]:
#%%time
#
#sns.factorplot(x="SEP", y="SALARY", col="PATCOT", data=SampledOPMDataProf,
#               kind="violin", split=True, aspect=.4, size=10);
In [86]:
%%time

g = sns.PairGrid(data=SampledOPMDataProf,
                 x_vars=["SEP","PATCOT"],
                 y_vars=["SALARY", "LOS", "LowerLimitAge", "YearsToRetirement"],
                 aspect=1, size=10)
g.map(sns.violinplot, palette="pastel", inner="quart");
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
CPU times: user 5.01 s, sys: 25.8 s, total: 30.8 s
Wall time: 1.38 s

Encode Categorical Attributes, and Remove Description Columns for Analysis Prep

Now that we have the dataset sampled, we still have some legwork necessary to convert our categorical attributes into binary integer values. Below we walk through this process for the following Attributes:

  • AGELVL
  • LOC
  • SALLVL
  • TOA
  • OCCTYP
  • OCCFAM
  • PPTYP
  • PPGROUP
  • TOATYP

Once these attributes have been encoded and description columns removed, we end up with a total of 2446 attributes in our dataset for analysis in our model generation.

In [87]:
# Clean up old objects no longer needed, to clear up memory
process = psutil.Process(os.getpid())
print("Memory Usage before Cleanup: ", process.memory_info().rss)

if 'AGELVL' in dir():
    del AGELVL
if 'AggIndAvgSalary' in dir():
    del AggIndAvgSalary
if 'AggIndAvgSalary2' in dir():
    del AggIndAvgSalary2
if 'AggSEPCount_EFDATE_LOC' in dir():
    del AggSEPCount_EFDATE_LOC
if 'AggSEPCount_EFDATE_OCC' in dir():
    del AggSEPCount_EFDATE_OCC
if 'AggStrat' in dir():
    del AggStrat
if 'DATECODE' in dir():
    del DATECODE
if 'EMPColList' in dir():
    del EMPColList
if 'EMPDataOrig4Q' in dir():
    del EMPDataOrig4Q
if 'maxSize' in dir():
    del maxSize
if 'OPMColList' in dir():
    del OPMColList
if 'OPMDataFiles' in dir():
    del OPMDataFiles
if 'OPMDataList' in dir():
    del OPMDataList
if 'OPMDataMerged' in dir():
    del OPMDataMerged
if 'OPMDataOrig' in dir():
    del OPMDataOrig
if 'SEP' in dir():
    del SEP
if 'SampleSize' in dir():
    del SampleSize
if 'SampledOPMStratumData' in dir():
    del SampledOPMStratumData
if 'SampledOPMStratumDataList' in dir():
    del SampledOPMStratumDataList
if 'StratCountSample' in dir():
    del StratCountSample
if 'StratSampleSize' in dir():
    del StratSampleSize
if 'JTL' in dir():
    del JTL
    
process = psutil.Process(os.getpid())
print("Memory Usage after Cleanup: ", process.memory_info().rss)
Memory Usage before Cleanup:  14051307520
Memory Usage after Cleanup:  12341370880
In [88]:
display(SampledOPMDataProf.head())
SampledOPMDataProf.info()
SEP DATECODE AGELVL GSEGRD LOC PATCO TOA WORKSCH SALARY LOS AGELVLT LOCTYP LOCTYPT LOCT OCCTYP OCCTYPT OCCFAM OCCFAMT PATCOT PPTYP PPTYPT PPGROUP PPGROUPT TOATYP TOATYPT TOAT WSTYP WSTYPT WORKSCHT SEPCount_EFDATE_OCC SEPCount_EFDATE_LOC IndAvgSalary SalaryOverUnderIndAvg LowerLimitAge YearsToRetirement BLS_FEDERAL_OtherSep_Rate BLS_FEDERAL_Quits_Rate BLS_FEDERAL_TotalSep_Level BLS_FEDERAL_JobOpenings_Rate BLS_FEDERAL_OtherSep_Level BLS_FEDERAL_Quits_Level BLS_FEDERAL_JobOpenings_Level BLS_FEDERAL_Layoffs_Rate BLS_FEDERAL_Layoffs_Level BLS_FEDERAL_TotalSep_Rate SALARYLog LOSSqrt SEPCount_EFDATE_OCCLog SEPCount_EFDATE_LOCLog IndAvgSalaryLog
0 NS 201410 B 11.0 42 1 10 F 61857.0 4.7 20-24 1 United States 42-PENNSYLVANIA 1 White Collar 11 11xx-BUSINESS AND INDUSTRY Professional 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans 1 Permanent 10-Competitive Service - Career 1 Full-time Full-time Nonseasonal 336.0 470 65898.205859 -4041.205859 20.0 37.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.032581 2.167948 5.817111 6.152733 11.095866
1 NS 201410 C 12.0 49 1 10 F 71813.0 7.2 25-29 1 United States 49-UTAH 1 White Collar 11 11xx-BUSINESS AND INDUSTRY Professional 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans 1 Permanent 10-Competitive Service - Career 1 Full-time Full-time Nonseasonal 336.0 513 81218.917413 -9405.917413 25.0 32.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.181821 2.683282 5.817111 6.240276 11.304903
2 NS 201410 C 11.0 24 1 38 F 63091.0 4.0 25-29 1 United States 24-MARYLAND 1 White Collar 11 11xx-BUSINESS AND INDUSTRY Professional 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans 1 Permanent 38-Excepted Service - Other 1 Full-time Full-time Nonseasonal 336.0 923 65898.205859 -2807.205859 25.0 32.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.052333 2.000000 5.817111 6.827629 11.095866
3 NS 201410 C 12.0 24 1 10 F 75621.0 5.8 25-29 1 United States 24-MARYLAND 1 White Collar 05 05xx-ACCOUNTING AND BUDGET Professional 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans 1 Permanent 10-Competitive Service - Career 1 Full-time Full-time Nonseasonal 75.0 923 82168.243394 -6547.243394 25.0 32.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.233489 2.408319 4.317488 6.827629 11.316524
4 NS 201410 C 13.0 24 1 15 F 95919.0 2.0 25-29 1 United States 24-MARYLAND 1 White Collar 06 06xx-MEDICAL, HOSPITAL, DENTAL & PUB HEALTH Professional 1 General Schedule and Equivalently Graded (GSEG... 11 Standard GSEG Pay Plans 1 Permanent 15-Competitive Service - Career-Conditional 1 Full-time Full-time Nonseasonal 63.0 923 121938.733696 -26019.733696 25.0 32.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.471259 1.414214 4.143135 6.827629 11.711274
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 14920 entries, 0 to 14919
Data columns (total 50 columns):
SEP                              14920 non-null object
DATECODE                         14920 non-null object
AGELVL                           14920 non-null object
GSEGRD                           14920 non-null float64
LOC                              14920 non-null object
PATCO                            14920 non-null object
TOA                              14920 non-null object
WORKSCH                          14920 non-null object
SALARY                           14920 non-null float64
LOS                              14920 non-null float64
AGELVLT                          14920 non-null object
LOCTYP                           14920 non-null object
LOCTYPT                          14920 non-null object
LOCT                             14920 non-null object
OCCTYP                           14920 non-null object
OCCTYPT                          14920 non-null object
OCCFAM                           14920 non-null object
OCCFAMT                          14920 non-null object
PATCOT                           14920 non-null object
PPTYP                            14920 non-null object
PPTYPT                           14920 non-null object
PPGROUP                          14920 non-null object
PPGROUPT                         14920 non-null object
TOATYP                           14920 non-null object
TOATYPT                          14920 non-null object
TOAT                             14920 non-null object
WSTYP                            14920 non-null object
WSTYPT                           14920 non-null object
WORKSCHT                         14920 non-null object
SEPCount_EFDATE_OCC              14920 non-null float64
SEPCount_EFDATE_LOC              14920 non-null int64
IndAvgSalary                     14920 non-null float64
SalaryOverUnderIndAvg            14920 non-null float64
LowerLimitAge                    14920 non-null float64
YearsToRetirement                14920 non-null float64
BLS_FEDERAL_OtherSep_Rate        14920 non-null float64
BLS_FEDERAL_Quits_Rate           14920 non-null float64
BLS_FEDERAL_TotalSep_Level       14920 non-null int64
BLS_FEDERAL_JobOpenings_Rate     14920 non-null float64
BLS_FEDERAL_OtherSep_Level       14920 non-null int64
BLS_FEDERAL_Quits_Level          14920 non-null int64
BLS_FEDERAL_JobOpenings_Level    14920 non-null int64
BLS_FEDERAL_Layoffs_Rate         14920 non-null float64
BLS_FEDERAL_Layoffs_Level        14920 non-null int64
BLS_FEDERAL_TotalSep_Rate        14920 non-null float64
SALARYLog                        14920 non-null float64
LOSSqrt                          14920 non-null float64
SEPCount_EFDATE_OCCLog           14920 non-null float64
SEPCount_EFDATE_LOCLog           14920 non-null float64
IndAvgSalaryLog                  14920 non-null float64
dtypes: float64(18), int64(6), object(26)
memory usage: 5.7+ MB
In [89]:
%%time

if os.path.isfile(PickleJarPath+"/OPMAnalysisDataNoFamBinary.pkl"):
    print("Found the File! Loading Pickle Now!")
    OPMAnalysisDataNoFamBinary = unpickleObject("OPMAnalysisDataNoFamBinary")
else:

    OPMAnalysisDataNoFamBinary = SampledOPMDataProf.copy()

    cols = ["GENDER",
            "DATECODE",
            "QTR",
            "COUNT",
            "AGYTYPT",
            "AGYT",
            "AGYSUB",
            "AGYSUBT",
            "QTR",
            "AGELVLT",
            "LOSLVL",
            "LOSLVLT",
            "LOCTYPT",
            "LOCT",
            "OCCTYP",
            "OCCTYPT",
            "OCCFAM",
            "OCCFAMT",
            "OCC",
            "OCCT",
            "PATCO",
            "PPGRD",
            "PATCOT",
            "PPTYPT",
            "PPGROUPT",
            "PAYPLAN",
            "PAYPLANT",
            "SALLVLT",
            "TOATYPT",
            "TOAT",
            "WSTYP",
            "WSTYPT",
            "WORKSCH",
            "WORKSCHT",
            "SALARY",
            "LOS",
            "SEPCount_EFDATE_OCC",
            "SEPCount_EFDATE_LOC"
           ]



    #delete cols from analysis data
    for col in cols:
        if col in list(OPMAnalysisDataNoFamBinary.columns):
            del OPMAnalysisDataNoFamBinary[col]

    OPMAnalysisDataNoFamBinary.info()

    cols = ["AGELVL",
            "LOC",
            "SALLVL",
            "TOA",
            "AGYTYP",
            "AGY",
            "LOCTYP",
            "PPTYP",
            "PPGROUP",
            "TOATYP"
           ]

    #Split Values for cols 
    for col in cols:
        if col in list(OPMAnalysisDataNoFamBinary.columns):
            AttSplit = pd.get_dummies(OPMAnalysisDataNoFamBinary[col],prefix=col)
            display(AttSplit.head())
            OPMAnalysisDataNoFamBinary = pd.concat((OPMAnalysisDataNoFamBinary,AttSplit),axis=1) # add back into the dataframe
            del OPMAnalysisDataNoFamBinary[col]

    pickleObject(OPMAnalysisDataNoFamBinary, "OPMAnalysisDataNoFamBinary")
        
display(OPMAnalysisDataNoFamBinary.head())
print("Number of Columns: ",len(OPMAnalysisDataNoFamBinary.columns))
OPMAnalysisDataNoFamBinary.info()
Found the File! Loading Pickle Now!
SEP GSEGRD IndAvgSalary SalaryOverUnderIndAvg LowerLimitAge YearsToRetirement BLS_FEDERAL_OtherSep_Rate BLS_FEDERAL_Quits_Rate BLS_FEDERAL_TotalSep_Level BLS_FEDERAL_JobOpenings_Rate BLS_FEDERAL_OtherSep_Level BLS_FEDERAL_Quits_Level BLS_FEDERAL_JobOpenings_Level BLS_FEDERAL_Layoffs_Rate BLS_FEDERAL_Layoffs_Level BLS_FEDERAL_TotalSep_Rate SALARYLog LOSSqrt SEPCount_EFDATE_OCCLog SEPCount_EFDATE_LOCLog IndAvgSalaryLog AGELVL_B AGELVL_C AGELVL_D AGELVL_E AGELVL_F AGELVL_G AGELVL_H AGELVL_I AGELVL_J AGELVL_K LOC_01 LOC_02 LOC_04 LOC_05 LOC_06 LOC_08 LOC_09 LOC_10 LOC_11 LOC_12 LOC_13 LOC_15 LOC_16 LOC_17 LOC_18 LOC_19 LOC_20 LOC_21 LOC_22 LOC_23 LOC_24 LOC_25 LOC_26 LOC_27 LOC_28 LOC_29 LOC_30 LOC_31 LOC_32 LOC_33 LOC_34 LOC_35 LOC_36 LOC_37 LOC_38 LOC_39 LOC_40 LOC_41 LOC_42 LOC_44 LOC_45 LOC_46 LOC_47 LOC_48 LOC_49 LOC_50 LOC_51 LOC_53 LOC_54 LOC_55 LOC_56 TOA_10 TOA_15 TOA_20 TOA_30 TOA_32 TOA_35 TOA_38 TOA_40 TOA_42 TOA_44 TOA_45 TOA_48 LOCTYP_1 PPTYP_1 PPGROUP_11 PPGROUP_12 TOATYP_1 TOATYP_2
0 NS 11.0 65898.205859 -4041.205859 20.0 37.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.032581 2.167948 5.817111 6.152733 11.095866 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0
1 NS 12.0 81218.917413 -9405.917413 25.0 32.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.181821 2.683282 5.817111 6.240276 11.304903 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0
2 NS 11.0 65898.205859 -2807.205859 25.0 32.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.052333 2.000000 5.817111 6.827629 11.095866 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 1 0
3 NS 12.0 82168.243394 -6547.243394 25.0 32.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.233489 2.408319 4.317488 6.827629 11.316524 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0
4 NS 13.0 121938.733696 -26019.733696 25.0 32.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.471259 1.414214 4.143135 6.827629 11.711274 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0
Number of Columns:  100
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 14920 entries, 0 to 14919
Data columns (total 100 columns):
SEP                              14920 non-null object
GSEGRD                           14920 non-null float64
IndAvgSalary                     14920 non-null float64
SalaryOverUnderIndAvg            14920 non-null float64
LowerLimitAge                    14920 non-null float64
YearsToRetirement                14920 non-null float64
BLS_FEDERAL_OtherSep_Rate        14920 non-null float64
BLS_FEDERAL_Quits_Rate           14920 non-null float64
BLS_FEDERAL_TotalSep_Level       14920 non-null int64
BLS_FEDERAL_JobOpenings_Rate     14920 non-null float64
BLS_FEDERAL_OtherSep_Level       14920 non-null int64
BLS_FEDERAL_Quits_Level          14920 non-null int64
BLS_FEDERAL_JobOpenings_Level    14920 non-null int64
BLS_FEDERAL_Layoffs_Rate         14920 non-null float64
BLS_FEDERAL_Layoffs_Level        14920 non-null int64
BLS_FEDERAL_TotalSep_Rate        14920 non-null float64
SALARYLog                        14920 non-null float64
LOSSqrt                          14920 non-null float64
SEPCount_EFDATE_OCCLog           14920 non-null float64
SEPCount_EFDATE_LOCLog           14920 non-null float64
IndAvgSalaryLog                  14920 non-null float64
AGELVL_B                         14920 non-null uint8
AGELVL_C                         14920 non-null uint8
AGELVL_D                         14920 non-null uint8
AGELVL_E                         14920 non-null uint8
AGELVL_F                         14920 non-null uint8
AGELVL_G                         14920 non-null uint8
AGELVL_H                         14920 non-null uint8
AGELVL_I                         14920 non-null uint8
AGELVL_J                         14920 non-null uint8
AGELVL_K                         14920 non-null uint8
LOC_01                           14920 non-null uint8
LOC_02                           14920 non-null uint8
LOC_04                           14920 non-null uint8
LOC_05                           14920 non-null uint8
LOC_06                           14920 non-null uint8
LOC_08                           14920 non-null uint8
LOC_09                           14920 non-null uint8
LOC_10                           14920 non-null uint8
LOC_11                           14920 non-null uint8
LOC_12                           14920 non-null uint8
LOC_13                           14920 non-null uint8
LOC_15                           14920 non-null uint8
LOC_16                           14920 non-null uint8
LOC_17                           14920 non-null uint8
LOC_18                           14920 non-null uint8
LOC_19                           14920 non-null uint8
LOC_20                           14920 non-null uint8
LOC_21                           14920 non-null uint8
LOC_22                           14920 non-null uint8
LOC_23                           14920 non-null uint8
LOC_24                           14920 non-null uint8
LOC_25                           14920 non-null uint8
LOC_26                           14920 non-null uint8
LOC_27                           14920 non-null uint8
LOC_28                           14920 non-null uint8
LOC_29                           14920 non-null uint8
LOC_30                           14920 non-null uint8
LOC_31                           14920 non-null uint8
LOC_32                           14920 non-null uint8
LOC_33                           14920 non-null uint8
LOC_34                           14920 non-null uint8
LOC_35                           14920 non-null uint8
LOC_36                           14920 non-null uint8
LOC_37                           14920 non-null uint8
LOC_38                           14920 non-null uint8
LOC_39                           14920 non-null uint8
LOC_40                           14920 non-null uint8
LOC_41                           14920 non-null uint8
LOC_42                           14920 non-null uint8
LOC_44                           14920 non-null uint8
LOC_45                           14920 non-null uint8
LOC_46                           14920 non-null uint8
LOC_47                           14920 non-null uint8
LOC_48                           14920 non-null uint8
LOC_49                           14920 non-null uint8
LOC_50                           14920 non-null uint8
LOC_51                           14920 non-null uint8
LOC_53                           14920 non-null uint8
LOC_54                           14920 non-null uint8
LOC_55                           14920 non-null uint8
LOC_56                           14920 non-null uint8
TOA_10                           14920 non-null uint8
TOA_15                           14920 non-null uint8
TOA_20                           14920 non-null uint8
TOA_30                           14920 non-null uint8
TOA_32                           14920 non-null uint8
TOA_35                           14920 non-null uint8
TOA_38                           14920 non-null uint8
TOA_40                           14920 non-null uint8
TOA_42                           14920 non-null uint8
TOA_44                           14920 non-null uint8
TOA_45                           14920 non-null uint8
TOA_48                           14920 non-null uint8
LOCTYP_1                         14920 non-null uint8
PPTYP_1                          14920 non-null uint8
PPGROUP_11                       14920 non-null uint8
PPGROUP_12                       14920 non-null uint8
TOATYP_1                         14920 non-null uint8
TOATYP_2                         14920 non-null uint8
dtypes: float64(15), int64(5), object(1), uint8(79)
memory usage: 3.5+ MB
CPU times: user 102 ms, sys: 1.46 ms, total: 103 ms
Wall time: 99.5 ms

Below is a display of all remaining attributes and their corresponding data types for analysis

In [90]:
%%time

data_type = []
for idx, col in enumerate(OPMAnalysisDataNoFamBinary.columns):
    data_type.append(OPMAnalysisDataNoFamBinary.dtypes[idx])

summary_df = {'Attribute Name' : pd.Series(OPMAnalysisDataNoFamBinary.columns, index = range(len(OPMAnalysisDataNoFamBinary.columns))), 'Data Type' : pd.Series(data_type, index = range(len(OPMAnalysisDataNoFamBinary.columns)))}
summary_df = pd.DataFrame(summary_df)
display(summary_df)

del data_type, summary_df
Attribute Name Data Type
0 SEP object
1 GSEGRD float64
2 IndAvgSalary float64
3 SalaryOverUnderIndAvg float64
4 LowerLimitAge float64
5 YearsToRetirement float64
6 BLS_FEDERAL_OtherSep_Rate float64
7 BLS_FEDERAL_Quits_Rate float64
8 BLS_FEDERAL_TotalSep_Level int64
9 BLS_FEDERAL_JobOpenings_Rate float64
10 BLS_FEDERAL_OtherSep_Level int64
11 BLS_FEDERAL_Quits_Level int64
12 BLS_FEDERAL_JobOpenings_Level int64
13 BLS_FEDERAL_Layoffs_Rate float64
14 BLS_FEDERAL_Layoffs_Level int64
15 BLS_FEDERAL_TotalSep_Rate float64
16 SALARYLog float64
17 LOSSqrt float64
18 SEPCount_EFDATE_OCCLog float64
19 SEPCount_EFDATE_LOCLog float64
20 IndAvgSalaryLog float64
21 AGELVL_B uint8
22 AGELVL_C uint8
23 AGELVL_D uint8
24 AGELVL_E uint8
25 AGELVL_F uint8
26 AGELVL_G uint8
27 AGELVL_H uint8
28 AGELVL_I uint8
29 AGELVL_J uint8
30 AGELVL_K uint8
31 LOC_01 uint8
32 LOC_02 uint8
33 LOC_04 uint8
34 LOC_05 uint8
35 LOC_06 uint8
36 LOC_08 uint8
37 LOC_09 uint8
38 LOC_10 uint8
39 LOC_11 uint8
40 LOC_12 uint8
41 LOC_13 uint8
42 LOC_15 uint8
43 LOC_16 uint8
44 LOC_17 uint8
45 LOC_18 uint8
46 LOC_19 uint8
47 LOC_20 uint8
48 LOC_21 uint8
49 LOC_22 uint8
50 LOC_23 uint8
51 LOC_24 uint8
52 LOC_25 uint8
53 LOC_26 uint8
54 LOC_27 uint8
55 LOC_28 uint8
56 LOC_29 uint8
57 LOC_30 uint8
58 LOC_31 uint8
59 LOC_32 uint8
60 LOC_33 uint8
61 LOC_34 uint8
62 LOC_35 uint8
63 LOC_36 uint8
64 LOC_37 uint8
65 LOC_38 uint8
66 LOC_39 uint8
67 LOC_40 uint8
68 LOC_41 uint8
69 LOC_42 uint8
70 LOC_44 uint8
71 LOC_45 uint8
72 LOC_46 uint8
73 LOC_47 uint8
74 LOC_48 uint8
75 LOC_49 uint8
76 LOC_50 uint8
77 LOC_51 uint8
78 LOC_53 uint8
79 LOC_54 uint8
80 LOC_55 uint8
81 LOC_56 uint8
82 TOA_10 uint8
83 TOA_15 uint8
84 TOA_20 uint8
85 TOA_30 uint8
86 TOA_32 uint8
87 TOA_35 uint8
88 TOA_38 uint8
89 TOA_40 uint8
90 TOA_42 uint8
91 TOA_44 uint8
92 TOA_45 uint8
93 TOA_48 uint8
94 LOCTYP_1 uint8
95 PPTYP_1 uint8
96 PPGROUP_11 uint8
97 PPGROUP_12 uint8
98 TOATYP_1 uint8
99 TOATYP_2 uint8
CPU times: user 26.2 ms, sys: 1.14 ms, total: 27.4 ms
Wall time: 25.8 ms

Dimensionality Reduction using Principal Component Analysis

We also scale the data values to remove bias in our models due to different attribute scales. Without scaling the data, attributes such as SALARY and LOS would carry heavier weights when compared against the binary encoded attributes and BLS data. This would cause unbalanced and improperly analyzed data for model creation.

In [91]:
OPMScaledAnalysisData = OPMAnalysisDataNoFamBinary.copy()
del OPMScaledAnalysisData["SEP"]
In [92]:
%%time

OPMAnalysisScalerFit = MinMaxScaler().fit(OPMScaledAnalysisData)
## Pickle for later re-use if needed
pickleObject(OPMAnalysisScalerFit, "OPMAnalysisScalerFit")

OPMScaledAnalysisData = pd.DataFrame(OPMAnalysisScalerFit.transform(OPMScaledAnalysisData), columns = OPMScaledAnalysisData.columns)
CPU times: user 12.5 ms, sys: 1.56 ms, total: 14.1 ms
Wall time: 14.6 ms
In [93]:
display(OPMScaledAnalysisData.head())
GSEGRD IndAvgSalary SalaryOverUnderIndAvg LowerLimitAge YearsToRetirement BLS_FEDERAL_OtherSep_Rate BLS_FEDERAL_Quits_Rate BLS_FEDERAL_TotalSep_Level BLS_FEDERAL_JobOpenings_Rate BLS_FEDERAL_OtherSep_Level BLS_FEDERAL_Quits_Level BLS_FEDERAL_JobOpenings_Level BLS_FEDERAL_Layoffs_Rate BLS_FEDERAL_Layoffs_Level BLS_FEDERAL_TotalSep_Rate SALARYLog LOSSqrt SEPCount_EFDATE_OCCLog SEPCount_EFDATE_LOCLog IndAvgSalaryLog AGELVL_B AGELVL_C AGELVL_D AGELVL_E AGELVL_F AGELVL_G AGELVL_H AGELVL_I AGELVL_J AGELVL_K LOC_01 LOC_02 LOC_04 LOC_05 LOC_06 LOC_08 LOC_09 LOC_10 LOC_11 LOC_12 LOC_13 LOC_15 LOC_16 LOC_17 LOC_18 LOC_19 LOC_20 LOC_21 LOC_22 LOC_23 LOC_24 LOC_25 LOC_26 LOC_27 LOC_28 LOC_29 LOC_30 LOC_31 LOC_32 LOC_33 LOC_34 LOC_35 LOC_36 LOC_37 LOC_38 LOC_39 LOC_40 LOC_41 LOC_42 LOC_44 LOC_45 LOC_46 LOC_47 LOC_48 LOC_49 LOC_50 LOC_51 LOC_53 LOC_54 LOC_55 LOC_56 TOA_10 TOA_15 TOA_20 TOA_30 TOA_32 TOA_35 TOA_38 TOA_40 TOA_42 TOA_44 TOA_45 TOA_48 LOCTYP_1 PPTYP_1 PPGROUP_11 PPGROUP_12 TOATYP_1 TOATYP_2
0 0.500 0.145270 0.471501 0.000000 1.000000 0.333333 0.333333 0.235294 0.153846 0.222222 0.25 0.083333 0.25 0.26087 0.166667 0.220405 0.256387 0.886424 0.646808 0.296670 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 1.0 0.0
1 0.625 0.229804 0.449531 0.111111 0.888889 0.333333 0.333333 0.235294 0.153846 0.222222 0.25 0.083333 0.25 0.26087 0.166667 0.292431 0.317332 0.886424 0.664165 0.418258 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 1.0 0.0
2 0.500 0.145270 0.476554 0.111111 0.888889 0.333333 0.333333 0.235294 0.153846 0.222222 0.25 0.083333 0.25 0.26087 0.166667 0.229938 0.236525 0.886424 0.780616 0.296670 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 1.0 0.0
3 0.625 0.235042 0.461238 0.111111 0.888889 0.333333 0.333333 0.235294 0.153846 0.222222 0.25 0.083333 0.25 0.26087 0.166667 0.317367 0.284814 0.657909 0.780616 0.425018 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 1.0 0.0
4 0.750 0.454481 0.381495 0.111111 0.888889 0.333333 0.333333 0.235294 0.153846 0.222222 0.25 0.083333 0.25 0.26087 0.166667 0.432120 0.167248 0.631340 0.780616 0.654628 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 1.0 0.0

PCA Principal Components defined

Our objective, is to reduce dimensionality through identification of principal components. We have chosen to use the full column input (99) as the maximum number of components to be produced. Given our hopes are to reduce the number of attributes needed for a model, we expect to find much smaller than 99 as our Principal components which explain over 80% variance within the dataset. We will review each component's explained variance further to determine the proper number of components to be included later during model generation. Note randomized PCA was chosen in order to use singular value decomposition in our dimensionality reduction efforts due to the large size of our data set.

In [94]:
%%time

seed = len(OPMScaledAnalysisData)

print(OPMScaledAnalysisData.shape)
pca_class = PCA(n_components=len(OPMScaledAnalysisData.columns), svd_solver='randomized', random_state=seed)

pca_class.fit(OPMScaledAnalysisData)
(14920, 99)
CPU times: user 17 s, sys: 22.2 s, total: 39.3 s
Wall time: 903 ms

Below, the resulting components have been ordered by eigenvector value and these values portrayed as ratios of variance explained by each component. In order to identify the principal components to be included during model generation, we review the rate at which explained variance decreases in significance from one principal component to the next. Accompanying these proportion values is a scree plot representing these same values in visual form. By plotting the scree plot, it is easier to judge where this rate of decreasing explained variance occurs. Note the rate of change in explained variance among the first 8 principal components, with another less significant change through the 22th component. After the 22th component, the rate of decreasing explained variance begins to somewhat flatten out.

In [95]:
%%time

#The amount of variance that each PC explains
var= pca_class.explained_variance_ratio_

sns.set(font_scale=1.7)
plt.plot(range(1,len(OPMScaledAnalysisData.columns)+1), var*100, marker = '.', color = 'red', markerfacecolor = 'black')
plt.xlabel('Principal Components')
plt.ylabel('Percentage of Explained Variance')
plt.title('Scree Plot')
plt.axis([0, len(OPMScaledAnalysisData.columns)+1, -0.1, 9])
plt.annotate('22nd Component', xy=(22, 1.2), xytext=(40, 4),
                arrowprops=dict(facecolor='black', shrink=0.05),)
np.set_printoptions(suppress=True)
print(np.round(var, decimals=4)*100)
[ 11.45   9.85   6.05   5.42   4.49   3.84   3.61   3.41   3.13   2.99
   2.76   2.74   2.72   2.6    2.53   2.36   2.31   2.05   1.89   1.68
   1.64   1.18   1.09   0.96   0.93   0.91   0.81   0.78   0.68   0.66
   0.64   0.61   0.58   0.54   0.51   0.49   0.46   0.45   0.44   0.41
   0.39   0.39   0.36   0.36   0.3    0.3    0.29   0.28   0.28   0.28
   0.26   0.22   0.21   0.21   0.21   0.21   0.2    0.2    0.2    0.19
   0.18   0.17   0.17   0.16   0.13   0.13   0.11   0.11   0.1    0.1    0.1
   0.1    0.07   0.07   0.06   0.06   0.04   0.04   0.03   0.02   0.02
   0.02   0.01   0.01   0.     0.     0.     0.     0.     0.     0.     0.
   0.     0.     0.     0.     0.     0.     0.  ]
CPU times: user 370 ms, sys: 2.13 s, total: 2.5 s
Wall time: 61.4 ms
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))

By now referring to the cumulative variance values and associated plot below, it may be seen that the cumulative variance increases in a fairly consistent parabola curve. In attempts to acheive a cumulative variance explained of greater than 80%, we end at 22 principal components. For this reason, 22 principal components may be selected as being the most appropriate for separation classification modeling given the variables among these data.

In [96]:
#Cumulative Variance explains
var1=np.cumsum(np.round(pca_class.explained_variance_ratio_, decimals=4)*100)

plt.plot(range(1,len(OPMScaledAnalysisData.columns)+1), var1, marker = '.', color = 'green', markerfacecolor = 'black')
plt.xlabel('Principal Components')
plt.ylabel('Explained Variance (Sum %)')
plt.title('Cumulative Variance Plot')
plt.axis([0, len(OPMScaledAnalysisData.columns)+1, 10, len(OPMScaledAnalysisData.columns)+1])
plt.annotate('22nd Component', xy=(22, 80.54), xytext=(40, 60),
                arrowprops=dict(facecolor='black', shrink=0.05),)
print(var1)
[ 11.45  21.3   27.35  32.77  37.26  41.1   44.71  48.12  51.25  54.24  57.
  59.74  62.46  65.06  67.59  69.95  72.26  74.31  76.2   77.88  79.52
  80.7   81.79  82.75  83.68  84.59  85.4   86.18  86.86  87.52  88.16
  88.77  89.35  89.89  90.4   90.89  91.35  91.8   92.24  92.65  93.04
  93.43  93.79  94.15  94.45  94.75  95.04  95.32  95.6   95.88  96.14
  96.36  96.57  96.78  96.99  97.2   97.4   97.6   97.8   97.99  98.17
  98.34  98.51  98.67  98.8   98.93  99.04  99.15  99.25  99.35  99.45
  99.55  99.62  99.69  99.75  99.81  99.85  99.89  99.92  99.94  99.96
  99.98  99.99 100.   100.   100.   100.   100.   100.   100.   100.   100.
 100.   100.   100.   100.   100.   100.   100.  ]
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))

We proceed to analyze the first 4 component Feature Loadings more carefully. See below, plots of the top 10 loadings for each component.

In [97]:
plt.rcParams['figure.figsize'] = (20, 12)
fig = plt.figure()
plt.rcParams.update({'font.size': 16})
plt.rc('xtick', labelsize=15)
plt.rc('ytick', labelsize=15) 
for i in range(0,4):
    components = pd.Series(pca_class.components_[i], index=OPMScaledAnalysisData.columns)

    maxcomponent = pd.Series(pd.DataFrame(abs(components).sort_values(ascending=False).head(10)).index)

    matplotlib.rc('xtick', labelsize=12)


    ax = fig.add_subplot(2,2,i + 1)
       
    weightsplot = pd.Series(components, index=maxcomponent)
    weightsplot.plot(title = "Principal Component "+ str(i+1), kind='bar', color = 'Tomato', ax = ax)

plt.tight_layout()
plt.show()
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
In [98]:
MaxPC = 22

PCList = []
for i in range(0,MaxPC):
    components = pd.Series(pca_class.components_[i], index=OPMScaledAnalysisData.columns)

    maxcomponent = pd.Series(pd.DataFrame(abs(components).sort_values(ascending=False).head(15)).index)

    PCList.append(maxcomponent)

PCList = pd.concat(PCList).drop_duplicates().sort_values(ascending=True).reset_index(drop = True)
print(PCList)
PCList = list(PCList)
0                          AGELVL_C
1                          AGELVL_D
2                          AGELVL_E
3                          AGELVL_F
4                          AGELVL_G
5                          AGELVL_H
6                          AGELVL_I
7                          AGELVL_J
8                          AGELVL_K
9     BLS_FEDERAL_JobOpenings_Level
10     BLS_FEDERAL_JobOpenings_Rate
11        BLS_FEDERAL_Layoffs_Level
12         BLS_FEDERAL_Layoffs_Rate
13       BLS_FEDERAL_OtherSep_Level
14        BLS_FEDERAL_OtherSep_Rate
15          BLS_FEDERAL_Quits_Level
16           BLS_FEDERAL_Quits_Rate
17       BLS_FEDERAL_TotalSep_Level
18        BLS_FEDERAL_TotalSep_Rate
19                           GSEGRD
20                     IndAvgSalary
21                  IndAvgSalaryLog
22                           LOC_04
23                           LOC_06
24                           LOC_08
25                           LOC_11
26                           LOC_12
27                           LOC_13
28                           LOC_24
29                           LOC_36
30                           LOC_48
31                           LOC_51
32                          LOSSqrt
33                    LowerLimitAge
34                       PPGROUP_11
35                       PPGROUP_12
36                        SALARYLog
37           SEPCount_EFDATE_LOCLog
38           SEPCount_EFDATE_OCCLog
39                         TOATYP_1
40                         TOATYP_2
41                           TOA_10
42                           TOA_15
43                           TOA_20
44                           TOA_30
45                           TOA_38
46                           TOA_40
47                           TOA_48
48                YearsToRetirement
dtype: object

Total of 50 features of the original 99 are identified, by taking the top 15 feature loadings within the first 22 components as determined above as the appropriate components to maximize variance explained. We may now, optionally utilize these 50 features identified, or utilize principal component vectors for analysis in the next steps.

Separation Response Weights

Due to the unproportional number of observations in each separation type in our dataset, we need to create weightings. using SciKit's class_weight algorithm, we compute an array of weights to be used downstream in our models.

Predicting Separation

We have chosen to utilize Stratified KFold Cross Validation for our classification analysis, with 5 folds. This means, that from our original sample size of 16,638, each "fold" will save off approximately 20% as test observations utilizing the rest as training observations all while keeping the ratio of classes equal amongst customers and subscribers. This process will occur through 5 iterations, or folds, to allow us to cross validate our results amongst different test/train combinations. We have utilized a random_state seed equal to the length of the original sampled dataset to ensure reproducible results.

In [99]:
seed = len(OPMAnalysisDataNoFamBinary)

cv = StratifiedKFold(n_splits = 5, random_state = seed)
print(OPMAnalysisDataNoFamBinary.shape)
print(cv)
(14920, 100)
StratifiedKFold(n_splits=5, random_state=14920, shuffle=False)

Random Forest Classification

Max Depth The maximum depth (levels) in the tree. When a value is set, the tree may not split further once this level has been met regardless of how many nodes are in the leaf.

Max Features Number of features to consider when looking for a split.

Minimum Samples in Leaf Minimum number of samples required to be in a leaf node. Splits may not occur which cause the number of samples in a leaf to be less than this value. Too low a value here leads to overfitting the tree to train data.

Minimum Samples to Split Minimum number fo samples required to split a node. Care was taken during parameter tests to keep the ratio between Min Samples in Leaf and Min Samples to Split equal to that of the default values (1:2). This was done to allow an even 50/50 split on nodes which match the lowest granularity split criteria. similar to the min samples in leaf, too low a value here leads to overfitting the tree to train data.

n_estimators Number of Trees generated in the forest. Increasing the number of trees, in our models increased accuracy while decreasing performance. We tuned to provide output that completed all 10 iterations in under 10 minutes.

Not Complete#### After 13 iterations of modifying the above parameters, we land on a final winner based on the highest average Accuracy value across all iterations. Average Accuracy values in our 10 test/train iterations ranged from 70.2668 % from default inputs of the random forest classification model to a value of 72.5192 % in the best tuned model fit. Although the run-time of this model parameter choice is the largest performed, we decided to remain with these inputs due to the amount increase in accuracy. As mentioned previously, we tuned the n_estimators parameter to ensure we stayed under 10 minutes execution. Parameter inputs for the final Random Forest Classification model with the KD Tree Algorithm are as follows: ###Not Complete

max_depth max_features min_samples_leaf min_samples_split n_estimators
TBD TBD TBD TBD TBD
In [ ]:
 
In [100]:
%%time
"""
def rfc_explor(n_estimators,
               max_features,
               max_depth, 
               min_samples_split,
               min_samples_leaf,
               Data        = OPMAnalysisDataNoFam,
               cols        = PCList,
               cv          = cv,
               seed        = seed):
    startTime = datetime.now()
    y = Data["SEP"].values # get the labels we want    
    
    X = Data[cols].as_matrix()
    
    rfc_clf = RandomForestClassifier(n_estimators=n_estimators, max_features = max_features, max_depth=max_depth, min_samples_split = min_samples_split, min_samples_leaf = min_samples_leaf, class_weight = "balanced", n_jobs=-1, random_state = seed) # get object
    
    # setup pipeline to take PCA, then fit a clf model
    clf_pipe = Pipeline(
        [('minMaxScaler', MinMaxScaler()),
         ('CLF',rfc_clf)]
    )

    accuracy = cross_val_score(clf_pipe, X, y, cv=cv.split(X, y)) # this also can help with parallelism
    MeanAccuracy =  sum(accuracy)/len(accuracy)
    accuracy = np.append(accuracy, MeanAccuracy)
    endTime = datetime.now()
    TotalTime = endTime - startTime
    accuracy = np.append(accuracy, TotalTime)
    
    print(TotalTime)
    print(accuracy)
    
    return accuracy
"""
CPU times: user 3 µs, sys: 1e+03 ns, total: 4 µs
Wall time: 9.06 µs
Out[100]:
'\ndef rfc_explor(n_estimators,\n               max_features,\n               max_depth, \n               min_samples_split,\n               min_samples_leaf,\n               Data        = OPMAnalysisDataNoFam,\n               cols        = PCList,\n               cv          = cv,\n               seed        = seed):\n    startTime = datetime.now()\n    y = Data["SEP"].values # get the labels we want    \n    \n    X = Data[cols].as_matrix()\n    \n    rfc_clf = RandomForestClassifier(n_estimators=n_estimators, max_features = max_features, max_depth=max_depth, min_samples_split = min_samples_split, min_samples_leaf = min_samples_leaf, class_weight = "balanced", n_jobs=-1, random_state = seed) # get object\n    \n    # setup pipeline to take PCA, then fit a clf model\n    clf_pipe = Pipeline(\n        [(\'minMaxScaler\', MinMaxScaler()),\n         (\'CLF\',rfc_clf)]\n    )\n\n    accuracy = cross_val_score(clf_pipe, X, y, cv=cv.split(X, y)) # this also can help with parallelism\n    MeanAccuracy =  sum(accuracy)/len(accuracy)\n    accuracy = np.append(accuracy, MeanAccuracy)\n    endTime = datetime.now()\n    TotalTime = endTime - startTime\n    accuracy = np.append(accuracy, TotalTime)\n    \n    print(TotalTime)\n    print(accuracy)\n    \n    return accuracy\n'
In [101]:
%%time
"""
def rfc_explor_w_PCA(n_estimators,
               max_features,
               max_depth, 
               min_samples_split,
               min_samples_leaf,
               PCA,
               Data        = OPMAnalysisDataNoFam,
               cv          = cv,
               seed        = seed):
    startTime = datetime.now()
    y = Data["SEP"].values # get the labels we want    
    
    X = Data.drop("SEP", axis=1).as_matrix()
    
    rfc_clf = RandomForestClassifier(n_estimators=n_estimators, max_features = max_features, max_depth=max_depth, min_samples_split = min_samples_split, min_samples_leaf = min_samples_leaf, class_weight = "balanced", n_jobs=-1, random_state = seed) # get object
    
    # setup pipeline to take PCA, then fit a clf model
    clf_pipe = Pipeline(
        [('minMaxScaler', MinMaxScaler()),
         ('PCA', PCA),
         ('CLF',rfc_clf)]
    )

    accuracy = cross_val_score(clf_pipe, X, y, cv=cv.split(X, y)) # this also can help with parallelism
    MeanAccuracy =  sum(accuracy)/len(accuracy)
    accuracy = np.append(accuracy, MeanAccuracy)
    endTime = datetime.now()
    TotalTime = endTime - startTime
    accuracy = np.append(accuracy, TotalTime)
    
    #print(TotalTime)
    #print(accuracy)
    
    return accuracy
"""
CPU times: user 3 µs, sys: 1e+03 ns, total: 4 µs
Wall time: 8.34 µs
Out[101]:
'\ndef rfc_explor_w_PCA(n_estimators,\n               max_features,\n               max_depth, \n               min_samples_split,\n               min_samples_leaf,\n               PCA,\n               Data        = OPMAnalysisDataNoFam,\n               cv          = cv,\n               seed        = seed):\n    startTime = datetime.now()\n    y = Data["SEP"].values # get the labels we want    \n    \n    X = Data.drop("SEP", axis=1).as_matrix()\n    \n    rfc_clf = RandomForestClassifier(n_estimators=n_estimators, max_features = max_features, max_depth=max_depth, min_samples_split = min_samples_split, min_samples_leaf = min_samples_leaf, class_weight = "balanced", n_jobs=-1, random_state = seed) # get object\n    \n    # setup pipeline to take PCA, then fit a clf model\n    clf_pipe = Pipeline(\n        [(\'minMaxScaler\', MinMaxScaler()),\n         (\'PCA\', PCA),\n         (\'CLF\',rfc_clf)]\n    )\n\n    accuracy = cross_val_score(clf_pipe, X, y, cv=cv.split(X, y)) # this also can help with parallelism\n    MeanAccuracy =  sum(accuracy)/len(accuracy)\n    accuracy = np.append(accuracy, MeanAccuracy)\n    endTime = datetime.now()\n    TotalTime = endTime - startTime\n    accuracy = np.append(accuracy, TotalTime)\n    \n    #print(TotalTime)\n    #print(accuracy)\n    \n    return accuracy\n'
In [102]:
%%time
"""
def rfc_explor_w_PCA(n_estimators,
               max_features,
               max_depth, 
               min_samples_split,
               min_samples_leaf,
               PCA,
               Data        = OPMAnalysisDataNoFam,
               cv          = cv,
               seed        = seed):
    startTime = datetime.now()
    y = Data["SEP"].values # get the labels we want    
    
    X = Data.drop("SEP", axis=1).as_matrix()
    
    rfc_clf = RandomForestClassifier(n_estimators=n_estimators, max_features = max_features, max_depth=max_depth, min_samples_split = min_samples_split, min_samples_leaf = min_samples_leaf, class_weight = "balanced", n_jobs=-1, random_state = seed) # get object
    
    # setup pipeline to take PCA, then fit a clf model
    clf_pipe = Pipeline(
        [('minMaxScaler', MinMaxScaler()),
         ('PCA', PCA),
         ('CLF',rfc_clf)]
    )

    accuracy = cross_val_score(clf_pipe, X, y, cv=cv.split(X, y)) # this also can help with parallelism
    MeanAccuracy =  sum(accuracy)/len(accuracy)
    accuracy = np.append(accuracy, MeanAccuracy)
    endTime = datetime.now()
    TotalTime = endTime - startTime
    accuracy = np.append(accuracy, TotalTime)
    
    #print(TotalTime)
    #print(accuracy)
    
    return accuracy
"""
CPU times: user 3 µs, sys: 1e+03 ns, total: 4 µs
Wall time: 8.34 µs
Out[102]:
'\ndef rfc_explor_w_PCA(n_estimators,\n               max_features,\n               max_depth, \n               min_samples_split,\n               min_samples_leaf,\n               PCA,\n               Data        = OPMAnalysisDataNoFam,\n               cv          = cv,\n               seed        = seed):\n    startTime = datetime.now()\n    y = Data["SEP"].values # get the labels we want    \n    \n    X = Data.drop("SEP", axis=1).as_matrix()\n    \n    rfc_clf = RandomForestClassifier(n_estimators=n_estimators, max_features = max_features, max_depth=max_depth, min_samples_split = min_samples_split, min_samples_leaf = min_samples_leaf, class_weight = "balanced", n_jobs=-1, random_state = seed) # get object\n    \n    # setup pipeline to take PCA, then fit a clf model\n    clf_pipe = Pipeline(\n        [(\'minMaxScaler\', MinMaxScaler()),\n         (\'PCA\', PCA),\n         (\'CLF\',rfc_clf)]\n    )\n\n    accuracy = cross_val_score(clf_pipe, X, y, cv=cv.split(X, y)) # this also can help with parallelism\n    MeanAccuracy =  sum(accuracy)/len(accuracy)\n    accuracy = np.append(accuracy, MeanAccuracy)\n    endTime = datetime.now()\n    TotalTime = endTime - startTime\n    accuracy = np.append(accuracy, TotalTime)\n    \n    #print(TotalTime)\n    #print(accuracy)\n    \n    return accuracy\n'

We have created a function to be re-used for our cross-validation Accuracy Scores. Inputs of PCA components, Model CLF object, original sample data, and a CV containing our test/train splits allow us to easily produce an array of Accuracy Scores for the different permutations of models tested. A XXXXXXTBDXXXXX plot is also displayed depicting a view of the misclassification values for each iteration. Finally, a confusion matrix is displayed for the last test/train iteration for further interpretation on results.

In [103]:
%%time
"""
acclist = [] 
fullColumns = list(OPMAnalysisDataNoFam.columns)

for i in fullColumns:
    if i == "SEP": fullColumns.remove(i)

n_estimators       =  [10    , 10     , 10    , 10    , 10    , 10    , 10    , 10    , 10    , 10    , 10  , 5    , 15   ]  
max_features       =  ['auto', 'auto' , 'auto', 'auto', 'auto', 'auto', 'auto', 14    , 14    , 14    , 14  , 14   , 14   ] 
max_depth          =  [None  , None   , None  , None  , None  , None  , None  , None  , 1000  , 500   , 100 , 1000 , 1000 ] 
min_samples_split  =  [2     , 8      , 12    , 16    , 20    , 50    , 80    , 50    , 50    , 50    , 50  , 50   , 50   ] 
min_samples_leaf   =  [1     , 4      , 6     , 8     , 10    , 25    , 40    , 25    , 25    , 25    , 25  , 25   , 25   ]

##Model with all Raw Scaled Features
for i in range(0,len(n_estimators)):
    acclist.append(rfc_explor(n_estimators      = n_estimators[i],
                              max_features      = max_features[i],
                              max_depth         = max_depth[i],
                              min_samples_split = min_samples_split[i],
                              min_samples_leaf  = min_samples_leaf[i],
                              cols              = fullColumns
                             )
                  )

rfcdf = pd.DataFrame(pd.concat([pd.DataFrame({  "ModelVersion": "All Raw Features",
                                                "n_estimators": n_estimators,          
                                                "max_features": max_features,         
                                                "max_depth": max_depth,        
                                                "min_samples_split": min_samples_split,
                                                "min_samples_leaf": min_samples_leaf   
                                              }),
                               pd.DataFrame(acclist)], axis = 1).reindex())
rfcdf.columns = ['ModelVersion', 'max_depth', 'max_features', 'min_samples_leaf','min_samples_split', 'n_estimators', 'Iteration 0', 'Iteration 1', 'Iteration 2', 'Iteration 3', 'Iteration 4', 'MeanAccuracy', 'RunTime']
display(rfcdf)
del rfcdf, acclist

acclist = []

n_estimators       =  [10    , 10     , 10    , 10    , 10    , 10    , 10    , 10    , 10    , 10    , 10  , 5    , 15   ]  
max_features       =  ['auto', 'auto' , 'auto', 'auto', 'auto', 'auto', 'auto', 14    , 14    , 14    , 14  , 14   , 14   ] 
max_depth          =  [None  , None   , None  , None  , None  , None  , None  , None  , 1000  , 500   , 100 , 1000 , 1000 ] 
min_samples_split  =  [2     , 8      , 12    , 16    , 20    , 50    , 80    , 50    , 50    , 50    , 50  , 50   , 50   ] 
min_samples_leaf   =  [1     , 4      , 6     , 8     , 10    , 25    , 40    , 25    , 25    , 25    , 25  , 25   , 25   ]

## Model with only top 15 raw Scaled Principal Features 
for i in range(0,len(n_estimators)):
    acclist.append(rfc_explor(n_estimators      = n_estimators[i],
                              max_features      = max_features[i],
                              max_depth         = max_depth[i],
                              min_samples_split = min_samples_split[i],
                              min_samples_leaf  = min_samples_leaf[i]
                             )
                  )

rfcdf = pd.DataFrame(pd.concat([pd.DataFrame({  "ModelVersion": "Top 15 Raw from PC",
                                                "n_estimators": n_estimators,          
                                                "max_features": max_features,         
                                                "max_depth": max_depth,        
                                                "min_samples_split": min_samples_split,
                                                "min_samples_leaf": min_samples_leaf   
                                              }),
                               pd.DataFrame(acclist)], axis = 1).reindex())
rfcdf.columns = ['ModelVersion', 'max_depth', 'max_features', 'min_samples_leaf','min_samples_split', 'n_estimators', 'Iteration 0', 'Iteration 1', 'Iteration 2', 'Iteration 3', 'Iteration 4', 'MeanAccuracy', 'RunTime']
display(rfcdf)
del rfcdf, acclist

### Model with PCA
acclist = []

n_estimators       =  [10    , 10     , 10    , 10    , 10    , 10    , 10    , 10    , 10    , 10    , 10  , 5    , 15   ]  
max_features       =  ['auto', 'auto' , 'auto', 'auto', 'auto', 'auto', 'auto', 14    , 14    , 14    , 14  , 14   , 14   ] 
max_depth          =  [None  , None   , None  , None  , None  , None  , None  , None  , 1000  , 500   , 100 , 1000 , 1000 ] 
min_samples_split  =  [2     , 8      , 12    , 16    , 20    , 50    , 80    , 50    , 50    , 50    , 50  , 50   , 50   ] 
min_samples_leaf   =  [1     , 4      , 6     , 8     , 10    , 25    , 40    , 25    , 25    , 25    , 25  , 25   , 25   ]

for i in range(0,len(n_estimators)):
    acclist.append(rfc_explor_w_PCA(n_estimators      = n_estimators[i],
                                    max_features      = max_features[i],
                                    max_depth         = max_depth[i],
                                    min_samples_split = min_samples_split[i],
                                    min_samples_leaf  = min_samples_leaf[i],
                                    PCA               = PCA(n_components=22, svd_solver='randomized', random_state = seed)
                                   )
                  )

rfcdf = pd.DataFrame(pd.concat([pd.DataFrame({  "ModelVersion": "With PCA",
                                                "n_estimators": n_estimators,          
                                                "max_features": max_features,         
                                                "max_depth": max_depth,        
                                                "min_samples_split": min_samples_split,
                                                "min_samples_leaf": min_samples_leaf   
                                              }),
                               pd.DataFrame(acclist)], axis = 1).reindex())
rfcdf.columns = ['ModelVersion', 'max_depth', 'max_features', 'min_samples_leaf','min_samples_split', 'n_estimators', 'Iteration 0', 'Iteration 1', 'Iteration 2', 'Iteration 3', 'Iteration 4', 'MeanAccuracy', 'RunTime']
display(rfcdf)

#'Iteration 5', 'Iteration 6', 'Iteration 7', 'Iteration 8', 'Iteration 9', 
"""
CPU times: user 3 µs, sys: 1e+03 ns, total: 4 µs
Wall time: 8.34 µs
Out[103]:
'\nacclist = [] \nfullColumns = list(OPMAnalysisDataNoFam.columns)\n\nfor i in fullColumns:\n    if i == "SEP": fullColumns.remove(i)\n\nn_estimators       =  [10    , 10     , 10    , 10    , 10    , 10    , 10    , 10    , 10    , 10    , 10  , 5    , 15   ]  \nmax_features       =  [\'auto\', \'auto\' , \'auto\', \'auto\', \'auto\', \'auto\', \'auto\', 14    , 14    , 14    , 14  , 14   , 14   ] \nmax_depth          =  [None  , None   , None  , None  , None  , None  , None  , None  , 1000  , 500   , 100 , 1000 , 1000 ] \nmin_samples_split  =  [2     , 8      , 12    , 16    , 20    , 50    , 80    , 50    , 50    , 50    , 50  , 50   , 50   ] \nmin_samples_leaf   =  [1     , 4      , 6     , 8     , 10    , 25    , 40    , 25    , 25    , 25    , 25  , 25   , 25   ]\n\n##Model with all Raw Scaled Features\nfor i in range(0,len(n_estimators)):\n    acclist.append(rfc_explor(n_estimators      = n_estimators[i],\n                              max_features      = max_features[i],\n                              max_depth         = max_depth[i],\n                              min_samples_split = min_samples_split[i],\n                              min_samples_leaf  = min_samples_leaf[i],\n                              cols              = fullColumns\n                             )\n                  )\n\nrfcdf = pd.DataFrame(pd.concat([pd.DataFrame({  "ModelVersion": "All Raw Features",\n                                                "n_estimators": n_estimators,          \n                                                "max_features": max_features,         \n                                                "max_depth": max_depth,        \n                                                "min_samples_split": min_samples_split,\n                                                "min_samples_leaf": min_samples_leaf   \n                                              }),\n                               pd.DataFrame(acclist)], axis = 1).reindex())\nrfcdf.columns = [\'ModelVersion\', \'max_depth\', \'max_features\', \'min_samples_leaf\',\'min_samples_split\', \'n_estimators\', \'Iteration 0\', \'Iteration 1\', \'Iteration 2\', \'Iteration 3\', \'Iteration 4\', \'MeanAccuracy\', \'RunTime\']\ndisplay(rfcdf)\ndel rfcdf, acclist\n\nacclist = []\n\nn_estimators       =  [10    , 10     , 10    , 10    , 10    , 10    , 10    , 10    , 10    , 10    , 10  , 5    , 15   ]  \nmax_features       =  [\'auto\', \'auto\' , \'auto\', \'auto\', \'auto\', \'auto\', \'auto\', 14    , 14    , 14    , 14  , 14   , 14   ] \nmax_depth          =  [None  , None   , None  , None  , None  , None  , None  , None  , 1000  , 500   , 100 , 1000 , 1000 ] \nmin_samples_split  =  [2     , 8      , 12    , 16    , 20    , 50    , 80    , 50    , 50    , 50    , 50  , 50   , 50   ] \nmin_samples_leaf   =  [1     , 4      , 6     , 8     , 10    , 25    , 40    , 25    , 25    , 25    , 25  , 25   , 25   ]\n\n## Model with only top 15 raw Scaled Principal Features \nfor i in range(0,len(n_estimators)):\n    acclist.append(rfc_explor(n_estimators      = n_estimators[i],\n                              max_features      = max_features[i],\n                              max_depth         = max_depth[i],\n                              min_samples_split = min_samples_split[i],\n                              min_samples_leaf  = min_samples_leaf[i]\n                             )\n                  )\n\nrfcdf = pd.DataFrame(pd.concat([pd.DataFrame({  "ModelVersion": "Top 15 Raw from PC",\n                                                "n_estimators": n_estimators,          \n                                                "max_features": max_features,         \n                                                "max_depth": max_depth,        \n                                                "min_samples_split": min_samples_split,\n                                                "min_samples_leaf": min_samples_leaf   \n                                              }),\n                               pd.DataFrame(acclist)], axis = 1).reindex())\nrfcdf.columns = [\'ModelVersion\', \'max_depth\', \'max_features\', \'min_samples_leaf\',\'min_samples_split\', \'n_estimators\', \'Iteration 0\', \'Iteration 1\', \'Iteration 2\', \'Iteration 3\', \'Iteration 4\', \'MeanAccuracy\', \'RunTime\']\ndisplay(rfcdf)\ndel rfcdf, acclist\n\n### Model with PCA\nacclist = []\n\nn_estimators       =  [10    , 10     , 10    , 10    , 10    , 10    , 10    , 10    , 10    , 10    , 10  , 5    , 15   ]  \nmax_features       =  [\'auto\', \'auto\' , \'auto\', \'auto\', \'auto\', \'auto\', \'auto\', 14    , 14    , 14    , 14  , 14   , 14   ] \nmax_depth          =  [None  , None   , None  , None  , None  , None  , None  , None  , 1000  , 500   , 100 , 1000 , 1000 ] \nmin_samples_split  =  [2     , 8      , 12    , 16    , 20    , 50    , 80    , 50    , 50    , 50    , 50  , 50   , 50   ] \nmin_samples_leaf   =  [1     , 4      , 6     , 8     , 10    , 25    , 40    , 25    , 25    , 25    , 25  , 25   , 25   ]\n\nfor i in range(0,len(n_estimators)):\n    acclist.append(rfc_explor_w_PCA(n_estimators      = n_estimators[i],\n                                    max_features      = max_features[i],\n                                    max_depth         = max_depth[i],\n                                    min_samples_split = min_samples_split[i],\n                                    min_samples_leaf  = min_samples_leaf[i],\n                                    PCA               = PCA(n_components=22, svd_solver=\'randomized\', random_state = seed)\n                                   )\n                  )\n\nrfcdf = pd.DataFrame(pd.concat([pd.DataFrame({  "ModelVersion": "With PCA",\n                                                "n_estimators": n_estimators,          \n                                                "max_features": max_features,         \n                                                "max_depth": max_depth,        \n                                                "min_samples_split": min_samples_split,\n                                                "min_samples_leaf": min_samples_leaf   \n                                              }),\n                               pd.DataFrame(acclist)], axis = 1).reindex())\nrfcdf.columns = [\'ModelVersion\', \'max_depth\', \'max_features\', \'min_samples_leaf\',\'min_samples_split\', \'n_estimators\', \'Iteration 0\', \'Iteration 1\', \'Iteration 2\', \'Iteration 3\', \'Iteration 4\', \'MeanAccuracy\', \'RunTime\']\ndisplay(rfcdf)\n\n#\'Iteration 5\', \'Iteration 6\', \'Iteration 7\', \'Iteration 8\', \'Iteration 9\', \n'
In [104]:
"""
def plot_confusion_matrix(cm, classes,
                          normalize=False,
                          title='Confusion matrix',
                          cmap=plt.cm.Blues):
    
    #This function prints and plots the confusion matrix.
    #Normalization can be applied by setting `normalize=True`.
    
    plt.rcParams['figure.figsize'] = (18, 6)
    plt.rcParams.update({'font.size': 16})
    plt.rc('xtick', labelsize=18)
    plt.rc('ytick', labelsize=18) 
    plt.imshow(cm, interpolation='nearest', cmap=cmap)
    plt.title(title, fontsize = 18)
    plt.colorbar()
    tick_marks = np.arange(len(classes))
    plt.xticks(tick_marks, classes, rotation=45)
    plt.yticks(tick_marks, classes)

    if normalize:
        cm = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis]
        print("Normalized confusion matrix")
    else:
        print('Confusion matrix, without normalization')

    print(cm)

    thresh = cm.max() / 2.
    for i, j in itertools.product(range(cm.shape[0]), range(cm.shape[1])):
        plt.text(j, i, round(cm[i, j],2),
                 horizontalalignment="center",
                 color="white" if cm[i, j] > thresh else "black")

    plt.tight_layout()
    plt.ylabel('True label', fontsize = 18)
    plt.xlabel('Predicted label', fontsize = 18)

    plt.show()
"""
Out[104]:
'\ndef plot_confusion_matrix(cm, classes,\n                          normalize=False,\n                          title=\'Confusion matrix\',\n                          cmap=plt.cm.Blues):\n    \n    #This function prints and plots the confusion matrix.\n    #Normalization can be applied by setting `normalize=True`.\n    \n    plt.rcParams[\'figure.figsize\'] = (18, 6)\n    plt.rcParams.update({\'font.size\': 16})\n    plt.rc(\'xtick\', labelsize=18)\n    plt.rc(\'ytick\', labelsize=18) \n    plt.imshow(cm, interpolation=\'nearest\', cmap=cmap)\n    plt.title(title, fontsize = 18)\n    plt.colorbar()\n    tick_marks = np.arange(len(classes))\n    plt.xticks(tick_marks, classes, rotation=45)\n    plt.yticks(tick_marks, classes)\n\n    if normalize:\n        cm = cm.astype(\'float\') / cm.sum(axis=1)[:, np.newaxis]\n        print("Normalized confusion matrix")\n    else:\n        print(\'Confusion matrix, without normalization\')\n\n    print(cm)\n\n    thresh = cm.max() / 2.\n    for i, j in itertools.product(range(cm.shape[0]), range(cm.shape[1])):\n        plt.text(j, i, round(cm[i, j],2),\n                 horizontalalignment="center",\n                 color="white" if cm[i, j] > thresh else "black")\n\n    plt.tight_layout()\n    plt.ylabel(\'True label\', fontsize = 18)\n    plt.xlabel(\'Predicted label\', fontsize = 18)\n\n    plt.show()\n'
In [105]:
%%time
"""
def compute_kfold_scores_Classification( clf,
                                         Data     = OPMAnalysisDataNoFam,
                                         cols     = PCList,
                                         cv       = cv):

    y = Data["SEP"].values # get the labels we want    
    
    y = np.where(y == 'NS', 0, 
                 np.where(y == 'SA', 1,
                          np.where(y == 'SC', 2,
                                   np.where(y == 'SD', 3,
                                            np.where(y == 'SH', 4,
                                                     5
                                                    )
                                           )
                                  )
                         )
                )
    
    X = Data[cols].as_matrix()


    # Run classifier with cross-validation and plot ROC curves

    # setup pipeline to take PCA, then fit a clf model
    clf_pipe = Pipeline(
        [('minMaxScaler', MinMaxScaler()),
         ('CLF',clf)]
    )
    
    
    accuracy = []
    #logloss = []
    
    for (train, test), color in zip(cv.split(X, y), colors):
        clf_pipe.fit(X[train],y[train])  # train object
        y_hat = clf_pipe.predict(X[test]) # get test set preditions
        
        a = float(mt.accuracy_score(y[test],y_hat))
        #l = float(mt.log_loss(y[test], y_hat))
        
        accuracy.append(round(a,5)) 

        #logloss.append(round(l,5)) 
    
    #print("Accuracy Ratings across all iterations: {0}\n\n\
#Average Accuracy: {1}\n\n\
#Log Loss Values across all iterations: {2}\n\n\
#Average Log Loss: {3}\n".format(accuracy, round(sum(accuracy)/len(accuracy),5), logloss,round(sum(logloss)/len(logloss),5)))

    print("Accuracy Ratings across all iterations: {0}\n\n\
Average Accuracy: {1}\n".format(accuracy, round(sum(accuracy)/len(accuracy),5)))

    
    ytestnames = np.where(y[test] ==  0,'NS', 
                          np.where(y[test] ==  1,'SA',
                                   np.where(y[test] ==  2,'SC',
                                            np.where(y[test] ==  3,'SD',
                                                     np.where(y[test] ==  4,'SH',
                                                              'SI'
                                                             )
                                                    )
                                           )
                                  )
                         )
    
    yhatnames  = np.where(y_hat ==  0,'NS', 
                          np.where(y_hat ==  1,'SA',
                                   np.where(y_hat ==  2,'SC',
                                            np.where(y_hat ==  3,'SD',
                                                     np.where(y_hat ==  4,'SH',
                                                              'SI'
                                                             )
                                                    )
                                           )
                                  )
                         )
    #print(set(list(y_hat)))
    print("confusion matrix\n{0}\n".format(pd.crosstab(ytestnames, yhatnames, rownames = ['True'], colnames = ['Predicted'], margins = True)))
        
        # Plot non-normalized confusion matrix
    plt.figure()
    plot_confusion_matrix(confusion_matrix(y[test], y_hat), 
                          classes   =["NS",  "SA",   "SC", "SD",  "SI"], 
                          normalize =True,
                          title     ='Confusion matrix, with normalization')
    
    return clf_pipe.named_steps['CLF'], accuracy
"""
CPU times: user 3 µs, sys: 1e+03 ns, total: 4 µs
Wall time: 8.58 µs
Out[105]:
'\ndef compute_kfold_scores_Classification( clf,\n                                         Data     = OPMAnalysisDataNoFam,\n                                         cols     = PCList,\n                                         cv       = cv):\n\n    y = Data["SEP"].values # get the labels we want    \n    \n    y = np.where(y == \'NS\', 0, \n                 np.where(y == \'SA\', 1,\n                          np.where(y == \'SC\', 2,\n                                   np.where(y == \'SD\', 3,\n                                            np.where(y == \'SH\', 4,\n                                                     5\n                                                    )\n                                           )\n                                  )\n                         )\n                )\n    \n    X = Data[cols].as_matrix()\n\n\n    # Run classifier with cross-validation and plot ROC curves\n\n    # setup pipeline to take PCA, then fit a clf model\n    clf_pipe = Pipeline(\n        [(\'minMaxScaler\', MinMaxScaler()),\n         (\'CLF\',clf)]\n    )\n    \n    \n    accuracy = []\n    #logloss = []\n    \n    for (train, test), color in zip(cv.split(X, y), colors):\n        clf_pipe.fit(X[train],y[train])  # train object\n        y_hat = clf_pipe.predict(X[test]) # get test set preditions\n        \n        a = float(mt.accuracy_score(y[test],y_hat))\n        #l = float(mt.log_loss(y[test], y_hat))\n        \n        accuracy.append(round(a,5)) \n\n        #logloss.append(round(l,5)) \n    \n    #print("Accuracy Ratings across all iterations: {0}\n\n#Average Accuracy: {1}\n\n#Log Loss Values across all iterations: {2}\n\n#Average Log Loss: {3}\n".format(accuracy, round(sum(accuracy)/len(accuracy),5), logloss,round(sum(logloss)/len(logloss),5)))\n\n    print("Accuracy Ratings across all iterations: {0}\n\nAverage Accuracy: {1}\n".format(accuracy, round(sum(accuracy)/len(accuracy),5)))\n\n    \n    ytestnames = np.where(y[test] ==  0,\'NS\', \n                          np.where(y[test] ==  1,\'SA\',\n                                   np.where(y[test] ==  2,\'SC\',\n                                            np.where(y[test] ==  3,\'SD\',\n                                                     np.where(y[test] ==  4,\'SH\',\n                                                              \'SI\'\n                                                             )\n                                                    )\n                                           )\n                                  )\n                         )\n    \n    yhatnames  = np.where(y_hat ==  0,\'NS\', \n                          np.where(y_hat ==  1,\'SA\',\n                                   np.where(y_hat ==  2,\'SC\',\n                                            np.where(y_hat ==  3,\'SD\',\n                                                     np.where(y_hat ==  4,\'SH\',\n                                                              \'SI\'\n                                                             )\n                                                    )\n                                           )\n                                  )\n                         )\n    #print(set(list(y_hat)))\n    print("confusion matrix\n{0}\n".format(pd.crosstab(ytestnames, yhatnames, rownames = [\'True\'], colnames = [\'Predicted\'], margins = True)))\n        \n        # Plot non-normalized confusion matrix\n    plt.figure()\n    plot_confusion_matrix(confusion_matrix(y[test], y_hat), \n                          classes   =["NS",  "SA",   "SC", "SD",  "SI"], \n                          normalize =True,\n                          title     =\'Confusion matrix, with normalization\')\n    \n    return clf_pipe.named_steps[\'CLF\'], accuracy\n'
In [106]:
%%time
"""
rfc_clf = RandomForestClassifier(n_estimators       = 15, 
                                 max_features       = 14, 
                                 max_depth          = 1000.0, 
                                 min_samples_split  = 50, 
                                 min_samples_leaf   = 25, 
                                 class_weight       = "balanced",
                                 n_jobs             = -1, 
                                 random_state       = seed) # get object
    
rfc_clf, rfc_acc = compute_kfold_scores_Classification(rfc_clf, cols = fullColumns)
"""
CPU times: user 3 µs, sys: 1e+03 ns, total: 4 µs
Wall time: 8.34 µs
Out[106]:
'\nrfc_clf = RandomForestClassifier(n_estimators       = 15, \n                                 max_features       = 14, \n                                 max_depth          = 1000.0, \n                                 min_samples_split  = 50, \n                                 min_samples_leaf   = 25, \n                                 class_weight       = "balanced",\n                                 n_jobs             = -1, \n                                 random_state       = seed) # get object\n    \nrfc_clf, rfc_acc = compute_kfold_scores_Classification(rfc_clf, cols = fullColumns)\n'
In [107]:
"""
list(OPMAnalysisDataNoFam.SEP.unique())
"""
Out[107]:
'\nlist(OPMAnalysisDataNoFam.SEP.unique())\n'
**Experimenting with multiclass ROC curves below.**
In [108]:
'''%%time

def compute_kfold_scores_Classification( clf,
                                         Data     = OPMAnalysisDataNoFam,
                                         cols     = PCList,
                                         cv       = cv):

    y = Data["SEP"].values # get the labels we want    
    
    y = np.where(y == 'NS', 0, 
                 np.where(y == 'SA', 1,
                          np.where(y == 'SC', 2,
                                   np.where(y == 'SD', 3,
                                            np.where(y == 'SH', 4,
                                                     5
                                                    )
                                           )
                                  )
                         )
                )
    
    X = Data[cols].as_matrix()
    
    # Binarize the output
    y_bin = label_binarize(Data["SEP"].values, list(Data.SEP.unique()))
    n_classes = y_bin.shape[1]

    # Run classifier with cross-validation and plot ROC curves

    # setup pipeline to take PCA, then fit a clf model
    clf_pipe = Pipeline(
        [('minMaxScaler', MinMaxScaler()),
         ('CLF',clf)]
    )
    
    colors = cycle(['cyan', 'indigo', 'seagreen', 'yellow', 'blue', 'darkorange', 'pink', 'darkred', 'dimgray', 'maroon', 'coral'])

    accuracy = []
    #logloss = []
    
    for (train, test), color in zip(cv.split(X, y), colors):
        clf_pipe.fit(X[train],y[train])  # train object
        y_hat = clf_pipe.predict(X[test]) # get test set preditions
        
        a = float(mt.accuracy_score(y[test],y_hat))
        #l = float(mt.log_loss(y[test], y_hat))
        
        accuracy.append(round(a,5)) 

        #logloss.append(round(l,5))
        
        # Compute ROC curve and area the curve
        #fpr, tpr, thresholds = roc_curve(y[test], probas_[:, 1])
        #mean_tpr += interp(mean_fpr, fpr, tpr)
        #mean_tpr[0] = 0.0
        #roc_auc = auc(fpr, tpr)
        #
        #plt.rcParams['figure.figsize'] = (12, 6)
        #
        #plt.plot(fpr, tpr, lw=lw, color=color,
        #         label='ROC fold %d (area = %0.2f)' % (i, roc_auc))
#
        #i += 1
        # Compute ROC curve and ROC area for each class
        fpr = dict()
        tpr = dict()
        roc_auc = dict()
        for i in range(n_classes):
            fpr[i], tpr[i], _ = roc_curve(y[test][:, i], y_hat[:, i])
            roc_auc[i] = auc(fpr[i], tpr[i])

        # Plot of a ROC curve for a specific class
        plt.figure()
        lw = 2
        plt.plot(fpr[2], tpr[2], color='darkorange',
                 lw=lw, label='ROC curve (area = %0.2f)' % roc_auc[2])
        plt.plot([0, 1], [0, 1], color='navy', lw=lw, linestyle='--')
        plt.xlim([0.0, 1.0])
        plt.ylim([0.0, 1.05])
        plt.xlabel('False Positive Rate')
        plt.ylabel('True Positive Rate')
        plt.title('Receiver operating characteristic example')
        plt.legend(loc="lower right")
        plt.show()
    #print("Accuracy Ratings across all iterations: {0}\n\n\
#Average Accuracy: {1}\n\n\
#Log Loss Values across all iterations: {2}\n\n\
#Average Log Loss: {3}\n".format(accuracy, round(sum(accuracy)/len(accuracy),5), logloss,round(sum(logloss)/len(logloss),5)))

    print("Accuracy Ratings across all iterations: {0}\n\n\
Average Accuracy: {1}\n".format(accuracy, round(sum(accuracy)/len(accuracy),5)))

    
    ytestnames = np.where(y[test] ==  0,'NS', 
                          np.where(y[test] ==  1,'SA',
                                   np.where(y[test] ==  2,'SC',
                                            np.where(y[test] ==  3,'SD',
                                                     np.where(y[test] ==  4,'SH',
                                                              'SI'
                                                             )
                                                    )
                                           )
                                  )
                         )
    
    yhatnames  = np.where(y_hat ==  0,'NS', 
                          np.where(y_hat ==  1,'SA',
                                   np.where(y_hat ==  2,'SC',
                                            np.where(y_hat ==  3,'SD',
                                                     np.where(y_hat ==  4,'SH',
                                                              'SI'
                                                             )
                                                    )
                                           )
                                  )
                         )
    #print(set(list(y_hat)))
    print("confusion matrix\n{0}\n".format(pd.crosstab(ytestnames, yhatnames, rownames = ['True'], colnames = ['Predicted'], margins = True)))
        
        # Plot non-normalized confusion matrix
    plt.figure()
    plot_confusion_matrix(confusion_matrix(y[test], y_hat), 
                          classes   =["NS",  "SA",   "SC", "SD",  "SH",  "SI"], 
                          normalize =True,
                          title     ='Confusion matrix, with normalization')
    
    return clf_pipe.named_steps['CLF'], accuracy'''
Out[108]:
'%%time\n\ndef compute_kfold_scores_Classification( clf,\n                                         Data     = OPMAnalysisDataNoFam,\n                                         cols     = PCList,\n                                         cv       = cv):\n\n    y = Data["SEP"].values # get the labels we want    \n    \n    y = np.where(y == \'NS\', 0, \n                 np.where(y == \'SA\', 1,\n                          np.where(y == \'SC\', 2,\n                                   np.where(y == \'SD\', 3,\n                                            np.where(y == \'SH\', 4,\n                                                     5\n                                                    )\n                                           )\n                                  )\n                         )\n                )\n    \n    X = Data[cols].as_matrix()\n    \n    # Binarize the output\n    y_bin = label_binarize(Data["SEP"].values, list(Data.SEP.unique()))\n    n_classes = y_bin.shape[1]\n\n    # Run classifier with cross-validation and plot ROC curves\n\n    # setup pipeline to take PCA, then fit a clf model\n    clf_pipe = Pipeline(\n        [(\'minMaxScaler\', MinMaxScaler()),\n         (\'CLF\',clf)]\n    )\n    \n    colors = cycle([\'cyan\', \'indigo\', \'seagreen\', \'yellow\', \'blue\', \'darkorange\', \'pink\', \'darkred\', \'dimgray\', \'maroon\', \'coral\'])\n\n    accuracy = []\n    #logloss = []\n    \n    for (train, test), color in zip(cv.split(X, y), colors):\n        clf_pipe.fit(X[train],y[train])  # train object\n        y_hat = clf_pipe.predict(X[test]) # get test set preditions\n        \n        a = float(mt.accuracy_score(y[test],y_hat))\n        #l = float(mt.log_loss(y[test], y_hat))\n        \n        accuracy.append(round(a,5)) \n\n        #logloss.append(round(l,5))\n        \n        # Compute ROC curve and area the curve\n        #fpr, tpr, thresholds = roc_curve(y[test], probas_[:, 1])\n        #mean_tpr += interp(mean_fpr, fpr, tpr)\n        #mean_tpr[0] = 0.0\n        #roc_auc = auc(fpr, tpr)\n        #\n        #plt.rcParams[\'figure.figsize\'] = (12, 6)\n        #\n        #plt.plot(fpr, tpr, lw=lw, color=color,\n        #         label=\'ROC fold %d (area = %0.2f)\' % (i, roc_auc))\n#\n        #i += 1\n        # Compute ROC curve and ROC area for each class\n        fpr = dict()\n        tpr = dict()\n        roc_auc = dict()\n        for i in range(n_classes):\n            fpr[i], tpr[i], _ = roc_curve(y[test][:, i], y_hat[:, i])\n            roc_auc[i] = auc(fpr[i], tpr[i])\n\n        # Plot of a ROC curve for a specific class\n        plt.figure()\n        lw = 2\n        plt.plot(fpr[2], tpr[2], color=\'darkorange\',\n                 lw=lw, label=\'ROC curve (area = %0.2f)\' % roc_auc[2])\n        plt.plot([0, 1], [0, 1], color=\'navy\', lw=lw, linestyle=\'--\')\n        plt.xlim([0.0, 1.0])\n        plt.ylim([0.0, 1.05])\n        plt.xlabel(\'False Positive Rate\')\n        plt.ylabel(\'True Positive Rate\')\n        plt.title(\'Receiver operating characteristic example\')\n        plt.legend(loc="lower right")\n        plt.show()\n    #print("Accuracy Ratings across all iterations: {0}\n\n#Average Accuracy: {1}\n\n#Log Loss Values across all iterations: {2}\n\n#Average Log Loss: {3}\n".format(accuracy, round(sum(accuracy)/len(accuracy),5), logloss,round(sum(logloss)/len(logloss),5)))\n\n    print("Accuracy Ratings across all iterations: {0}\n\nAverage Accuracy: {1}\n".format(accuracy, round(sum(accuracy)/len(accuracy),5)))\n\n    \n    ytestnames = np.where(y[test] ==  0,\'NS\', \n                          np.where(y[test] ==  1,\'SA\',\n                                   np.where(y[test] ==  2,\'SC\',\n                                            np.where(y[test] ==  3,\'SD\',\n                                                     np.where(y[test] ==  4,\'SH\',\n                                                              \'SI\'\n                                                             )\n                                                    )\n                                           )\n                                  )\n                         )\n    \n    yhatnames  = np.where(y_hat ==  0,\'NS\', \n                          np.where(y_hat ==  1,\'SA\',\n                                   np.where(y_hat ==  2,\'SC\',\n                                            np.where(y_hat ==  3,\'SD\',\n                                                     np.where(y_hat ==  4,\'SH\',\n                                                              \'SI\'\n                                                             )\n                                                    )\n                                           )\n                                  )\n                         )\n    #print(set(list(y_hat)))\n    print("confusion matrix\n{0}\n".format(pd.crosstab(ytestnames, yhatnames, rownames = [\'True\'], colnames = [\'Predicted\'], margins = True)))\n        \n        # Plot non-normalized confusion matrix\n    plt.figure()\n    plot_confusion_matrix(confusion_matrix(y[test], y_hat), \n                          classes   =["NS",  "SA",   "SC", "SD",  "SH",  "SI"], \n                          normalize =True,\n                          title     =\'Confusion matrix, with normalization\')\n    \n    return clf_pipe.named_steps[\'CLF\'], accuracy'
In [109]:
'''%%time

rfc_clf = OneVsRestClassifier(RandomForestClassifier(n_estimators       = 15, 
                                 max_features       = 14, 
                                 max_depth          = 1000.0, 
                                 min_samples_split  = 50, 
                                 min_samples_leaf   = 25, 
                                 class_weight       = "balanced",
                                 n_jobs             = -1, 
                                 random_state       = seed)) # get object
    
rfc_clf, rfc_acc = compute_kfold_scores_Classification(rfc_clf, cols = fullColumns)'''
Out[109]:
'%%time\n\nrfc_clf = OneVsRestClassifier(RandomForestClassifier(n_estimators       = 15, \n                                 max_features       = 14, \n                                 max_depth          = 1000.0, \n                                 min_samples_split  = 50, \n                                 min_samples_leaf   = 25, \n                                 class_weight       = "balanced",\n                                 n_jobs             = -1, \n                                 random_state       = seed)) # get object\n    \nrfc_clf, rfc_acc = compute_kfold_scores_Classification(rfc_clf, cols = fullColumns)'

New attempt:

In [110]:
'''%%time

rfc_clf = OneVsRestClassifier(RandomForestClassifier(n_estimators       = 15, 
                                 max_features       = 14, 
                                 max_depth          = 1000.0, 
                                 min_samples_split  = 50, 
                                 min_samples_leaf   = 25, 
                                 class_weight       = "balanced",
                                 n_jobs             = -1, 
                                 random_state       = seed)) # get object

y = OPMAnalysisDataNoFam["SEP"].values # get the labels we want
    
y = np.where(y == 'NS', 0, 
             np.where(y == 'SA', 1,
                      np.where(y == 'SC', 2,
                               np.where(y == 'SD', 3,
                                        np.where(y == 'SH', 4,
                                                 5
                                                )
                                       )
                              )
                     )
            )

X = OPMAnalysisDataNoFam[fullColumns].as_matrix()

# Binarize the output
#y_bin = label_binarize(OPMAnalysisDataNoFam["SEP"].values, list(OPMAnalysisDataNoFam.SEP.unique()))
n_classes = len(set(y))

#classifier = OneVsRestClassifier(svm.SVC(kernel='linear', probability=True,
#                                 random_state=random_state))
#y_score = rfc_clf.fit(X[train], y[train]).decision_function(X_test)
#
colors = cycle(['cyan', 'indigo', 'seagreen', 'yellow', 'blue', 'darkorange', 'pink', 'darkred', 'dimgray', 'maroon', 'coral'])
#
#accuracy = []
#

#for (train, test), color in zip(cv.split(X, y), colors):
#    probas_ = rfc_clf.fit(X[train], y[train]).predict_proba(X[test])    
#    
#    #rfc_clf.fit(X[train],y[train])  # train object
#    y_hat = rfc_clf.predict(X[test]) # get test set preditions
#    #y_hat = rfc_clf.fit(X[train],y[train]).decision_function(X[test])
#    
#    fpr = dict()
#    tpr = dict()
#    roc_auc = dict()
#    for i in range(n_classes):
#        #fpr[i], tpr[i], _ = roc_curve(y[test][:, i], y_hat[:, i])
#        print(len(probas_[:, i]))
#        print(y[test])
#        #fpr[i], tpr[i], thresholds = roc_curve(y[test][:, i], probas_[:, i])
#        #roc_auc[i] = auc(fpr[i], tpr[i])

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.5, random_state=seed)

probas_ = rfc_clf.fit(X_train, y_train).predict_proba(X_test)    
    
#rfc_clf.fit(X[train],y[train])  # train object
#y_hat = rfc_clf.predict(X_test) # get test set preditions
#y_hat = rfc_clf.fit(X_train,y_train).decision_function(X_test)

fpr = dict()
tpr = dict()
roc_auc = dict()
for i in range(n_classes):
    #fpr[i], tpr[i], _ = roc_curve(y[test][:, i], y_hat[:, i])
    print(probas_[:, i])
    print(y_test)
    #fpr[i], tpr[i], thresholds = roc_curve(y[test][i], probas_[:, i])
    #roc_auc[i] = auc(fpr[i], tpr[i])'''
Out[110]:
'%%time\n\nrfc_clf = OneVsRestClassifier(RandomForestClassifier(n_estimators       = 15, \n                                 max_features       = 14, \n                                 max_depth          = 1000.0, \n                                 min_samples_split  = 50, \n                                 min_samples_leaf   = 25, \n                                 class_weight       = "balanced",\n                                 n_jobs             = -1, \n                                 random_state       = seed)) # get object\n\ny = OPMAnalysisDataNoFam["SEP"].values # get the labels we want\n    \ny = np.where(y == \'NS\', 0, \n             np.where(y == \'SA\', 1,\n                      np.where(y == \'SC\', 2,\n                               np.where(y == \'SD\', 3,\n                                        np.where(y == \'SH\', 4,\n                                                 5\n                                                )\n                                       )\n                              )\n                     )\n            )\n\nX = OPMAnalysisDataNoFam[fullColumns].as_matrix()\n\n# Binarize the output\n#y_bin = label_binarize(OPMAnalysisDataNoFam["SEP"].values, list(OPMAnalysisDataNoFam.SEP.unique()))\nn_classes = len(set(y))\n\n#classifier = OneVsRestClassifier(svm.SVC(kernel=\'linear\', probability=True,\n#                                 random_state=random_state))\n#y_score = rfc_clf.fit(X[train], y[train]).decision_function(X_test)\n#\ncolors = cycle([\'cyan\', \'indigo\', \'seagreen\', \'yellow\', \'blue\', \'darkorange\', \'pink\', \'darkred\', \'dimgray\', \'maroon\', \'coral\'])\n#\n#accuracy = []\n#\n\n#for (train, test), color in zip(cv.split(X, y), colors):\n#    probas_ = rfc_clf.fit(X[train], y[train]).predict_proba(X[test])    \n#    \n#    #rfc_clf.fit(X[train],y[train])  # train object\n#    y_hat = rfc_clf.predict(X[test]) # get test set preditions\n#    #y_hat = rfc_clf.fit(X[train],y[train]).decision_function(X[test])\n#    \n#    fpr = dict()\n#    tpr = dict()\n#    roc_auc = dict()\n#    for i in range(n_classes):\n#        #fpr[i], tpr[i], _ = roc_curve(y[test][:, i], y_hat[:, i])\n#        print(len(probas_[:, i]))\n#        print(y[test])\n#        #fpr[i], tpr[i], thresholds = roc_curve(y[test][:, i], probas_[:, i])\n#        #roc_auc[i] = auc(fpr[i], tpr[i])\n\nX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.5, random_state=seed)\n\nprobas_ = rfc_clf.fit(X_train, y_train).predict_proba(X_test)    \n    \n#rfc_clf.fit(X[train],y[train])  # train object\n#y_hat = rfc_clf.predict(X_test) # get test set preditions\n#y_hat = rfc_clf.fit(X_train,y_train).decision_function(X_test)\n\nfpr = dict()\ntpr = dict()\nroc_auc = dict()\nfor i in range(n_classes):\n    #fpr[i], tpr[i], _ = roc_curve(y[test][:, i], y_hat[:, i])\n    print(probas_[:, i])\n    print(y_test)\n    #fpr[i], tpr[i], thresholds = roc_curve(y[test][i], probas_[:, i])\n    #roc_auc[i] = auc(fpr[i], tpr[i])'
In [ ]:
 

Building a Binary Classification model

Reducing data to Non-Separation and Quit Separation Types

Separation Response Weights

As was done before, we assess weights across classes. Since stratification was performed previously, we have equal weights. Thus, we can ignore weighting in our binary classifications.

In [111]:
OPMClassWeights = class_weight.compute_class_weight("balanced", OPMAnalysisDataNoFamBinary["SEP"].drop_duplicates(), OPMAnalysisDataNoFamBinary["SEP"])

display(stratumProf.merge(pd.DataFrame({"Weight": OPMClassWeights, "SEP": OPMAnalysisDataNoFamBinary["SEP"].drop_duplicates()}),on="SEP", how="inner"))
SEP StratCount StratCountSample Weight
0 NS 21076 7500.0 0.995065
1 SC 7423 7423.0 1.004985

Predicting Separation

We have chosen to utilize Stratified KFold Cross Validation for our classification analysis, with 5 folds. This means, that from our original sample size of 8002, each "fold" will save off approximately 20% as test observations utilizing the rest as training observations all while keeping the ratio of classes equal amongst customers and subscribers. This process will occur through 5 iterations, or folds, to allow us to cross validate our results amongst different test/train combinations. We have utilized a random_state seed equal to the length of the original sampled dataset to ensure reproducible results.

In [112]:
seed = len(OPMAnalysisDataNoFamBinary)

cv = StratifiedKFold(n_splits = 5, random_state = seed)
print(OPMAnalysisDataNoFamBinary.shape)
print(cv)
(14920, 100)
StratifiedKFold(n_splits=5, random_state=14920, shuffle=False)

Random Forest Classification

Max Depth The maximum depth (levels) in the tree. When a value is set, the tree may not split further once this level has been met regardless of how many nodes are in the leaf.

Max Features Number of features to consider when looking for a split.

Minimum Samples in Leaf Minimum number of samples required to be in a leaf node. Splits may not occur which cause the number of samples in a leaf to be less than this value. Too low a value here leads to overfitting the tree to train data.

Minimum Samples to Split Minimum number fo samples required to split a node. Care was taken during parameter tests to keep the ratio between Min Samples in Leaf and Min Samples to Split equal to that of the default values (1:2). This was done to allow an even 50/50 split on nodes which match the lowest granularity split criteria. similar to the min samples in leaf, too low a value here leads to overfitting the tree to train data.

n_estimators Number of Trees generated in the forest. Increasing the number of trees, in our models increased accuracy while decreasing performance. We tuned to provide output that completed all 10 iterations in under 10 minutes.

Not Complete#### After 13 iterations of modifying the above parameters, we land on a final winner based on the highest average Accuracy value across all iterations. Average Accuracy values in our 10 test/train iterations ranged from 70.2668 % from default inputs of the random forest classification model to a value of 72.5192 % in the best tuned model fit. Although the run-time of this model parameter choice is the largest performed, we decided to remain with these inputs due to the amount increase in accuracy. As mentioned previously, we tuned the n_estimators parameter to ensure we stayed under 10 minutes execution. Parameter inputs for the final Random Forest Classification model with the KD Tree Algorithm are as follows: ###Not Complete

max_depth max_features min_samples_leaf min_samples_split n_estimators
TBD TBD TBD TBD TBD
In [113]:
%%time

def rfc_explorBinary(n_estimators,
               max_features,
               max_depth, 
               min_samples_split,
               min_samples_leaf,
               Data        = OPMAnalysisDataNoFamBinary,
               cols        = PCList,
               cv          = cv,
               seed        = seed):
    startTime = datetime.now()
    y = Data["SEP"].values # get the labels we want    
    
    X = Data[cols].as_matrix()
    
    rfc_clf = RandomForestClassifier(n_estimators=n_estimators, max_features = max_features, max_depth=max_depth, min_samples_split = min_samples_split, min_samples_leaf = min_samples_leaf, n_jobs=-1, random_state = seed) # get object
    
    # setup pipeline to take PCA, then fit a clf model
    clf_pipe = Pipeline(
        [('minMaxScaler', MinMaxScaler()),
         ('CLF',rfc_clf)]
    )

    accuracy = cross_val_score(clf_pipe, X, y, cv=cv.split(X, y)) # this also can help with parallelism
    MeanAccuracy =  sum(accuracy)/len(accuracy)
    accuracy = np.append(accuracy, MeanAccuracy)
    endTime = datetime.now()
    TotalTime = endTime - startTime
    accuracy = np.append(accuracy, TotalTime)
    
    #print(TotalTime)
    #print(accuracy)
    
    return accuracy
CPU times: user 4 µs, sys: 1e+03 ns, total: 5 µs
Wall time: 9.54 µs
In [114]:
%%time

def rfc_explorBinary_w_PCA(n_estimators,
               max_features,
               max_depth, 
               min_samples_split,
               min_samples_leaf,
               PCA,
               Data        = OPMAnalysisDataNoFamBinary,
               cv          = cv,
               seed        = seed):
    startTime = datetime.now()
    y = Data["SEP"].values # get the labels we want    
    
    X = Data.drop("SEP", axis=1).as_matrix()
    
    rfc_clf = RandomForestClassifier(n_estimators=n_estimators, max_features = max_features, max_depth=max_depth, min_samples_split = min_samples_split, min_samples_leaf = min_samples_leaf, n_jobs=-1, random_state = seed) # get object
    
    # setup pipeline to take PCA, then fit a clf model
    clf_pipe = Pipeline(
        [('minMaxScaler', MinMaxScaler()),
         ('PCA', PCA),
         ('CLF',rfc_clf)]
    )

    accuracy = cross_val_score(clf_pipe, X, y, cv=cv.split(X, y)) # this also can help with parallelism
    MeanAccuracy =  sum(accuracy)/len(accuracy)
    accuracy = np.append(accuracy, MeanAccuracy)
    endTime = datetime.now()
    TotalTime = endTime - startTime
    accuracy = np.append(accuracy, TotalTime)
    
    #print(TotalTime)
    #print(accuracy)
    
    return accuracy
CPU times: user 5 µs, sys: 0 ns, total: 5 µs
Wall time: 9.54 µs
In [115]:
%%time

acclist = [] 
fullColumns = list(OPMAnalysisDataNoFamBinary.columns)

for i in fullColumns:
    if i == "SEP": fullColumns.remove(i)

n_estimators       =  [10    , 10     , 10    , 10    , 10    , 10    , 10    , 10    , 10    , 10   , 10   , 10    , 10    , 10    , 10    , 10    , 10    , 10    , 10    , 10    , 10    , 10    , 10    , 15    , 20    , 30    , 50    ]  
max_features       =  ['auto', 'auto' , 'auto', 'auto', 'auto', 'auto', 'auto', 5     , 10    , 15   , 20   , None  , 'auto', 'auto', 'auto', 'auto', 'auto', 'auto', 'auto', 'auto', 'auto', 'auto', 'auto', 'auto', 'auto', 'auto', 'auto'] 
max_depth          =  [None  , None   , None  , None  , None  , None  , None  , None  , None  , None , None , None  , 10    , 15    , 20    , 25    , 30    , 17    , 18    , 19    , 21    , 22    , 23    , 20    , 20    , 20    , 20    ] 
min_samples_split  =  [2     , 8      , 12    , 18    , 20    , 24    , 36    , 18    , 18    , 18   , 18   , 18    , 18    , 18    , 18    , 18    , 18    , 18    , 18    , 18    , 18    , 18    , 18    , 18    , 18    , 18    , 18    ] 
min_samples_leaf   =  [1     , 4      , 6     , 9     , 10    , 12    , 18    , 9     , 9     , 9    , 9    , 9     , 9     , 9     , 9     , 9     , 9     , 9     , 9     , 9     , 9     , 9     , 9     , 9     , 9     , 9     , 9     ]

##Model with all Raw Scaled Features
for i in range(0,len(n_estimators)):
    acclist.append(rfc_explorBinary(n_estimators      = n_estimators[i],
                              max_features      = max_features[i],
                              max_depth         = max_depth[i],
                              min_samples_split = min_samples_split[i],
                              min_samples_leaf  = min_samples_leaf[i],
                              cols              = fullColumns
                             )
                  )

rfcdf = pd.DataFrame(pd.concat([pd.DataFrame({  "ModelVersion": "All Raw Features",
                                                "n_estimators": n_estimators,          
                                                "max_features": max_features,         
                                                "max_depth": max_depth,        
                                                "min_samples_split": min_samples_split,
                                                "min_samples_leaf": min_samples_leaf   
                                              }),
                               pd.DataFrame(acclist)], axis = 1).reindex())
rfcdf.columns = ['ModelVersion', 'max_depth', 'max_features', 'min_samples_leaf','min_samples_split', 'n_estimators', 'Iteration 0', 'Iteration 1', 'Iteration 2', 'Iteration 3', 'Iteration 4', 'MeanAccuracy', 'RunTime']
display(rfcdf)
del rfcdf, acclist

acclist = []

n_estimators       =  [10    , 10     , 10    , 10    , 10    , 10    , 10    , 10    , 10    , 10   , 10   , 10    , 10    , 10    , 10    , 10    , 10    , 10    , 10    , 10    , 10    , 10    , 10    , 15    , 20    , 30    , 50    ]  
max_features       =  ['auto', 'auto' , 'auto', 'auto', 'auto', 'auto', 'auto', 5     , 10    , 15   , 20   , None  , 5     , 5     , 5     , 5     , 5     , 5     , 5     , 5     , 5     , 5     , 5     , 5     , 5     , 5     , 5     ] 
max_depth          =  [None  , None   , None  , None  , None  , None  , None  , None  , None  , None , None , None  , 10    , 15    , 20    , 25    , 30    , 17    , 18    , 19    , 21    , 22    , 23    , 20    , 20    , 20    , 20    ] 
min_samples_split  =  [2     , 8      , 12    , 18    , 20    , 24    , 36    , 18    , 18    , 18   , 18   , 18    , 18    , 18    , 18    , 18    , 18    , 18    , 18    , 18    , 18    , 18    , 18    , 18    , 18    , 18    , 18    ] 
min_samples_leaf   =  [1     , 4      , 6     , 9     , 10    , 12    , 18    , 9     , 9     , 9    , 9    , 9     , 9     , 9     , 9     , 9     , 9     , 9     , 9     , 9     , 9     , 9     , 9     , 9     , 9     , 9     , 9     ]


## Model with only top 15 raw Scaled Principal Features 
for i in range(0,len(n_estimators)):
    acclist.append(rfc_explorBinary(n_estimators      = n_estimators[i],
                              max_features      = max_features[i],
                              max_depth         = max_depth[i],
                              min_samples_split = min_samples_split[i],
                              min_samples_leaf  = min_samples_leaf[i]
                             )
                  )

rfcdf = pd.DataFrame(pd.concat([pd.DataFrame({  "ModelVersion": "Top 15 Raw from PC",
                                                "n_estimators": n_estimators,          
                                                "max_features": max_features,         
                                                "max_depth": max_depth,        
                                                "min_samples_split": min_samples_split,
                                                "min_samples_leaf": min_samples_leaf   
                                              }),
                               pd.DataFrame(acclist)], axis = 1).reindex())
rfcdf.columns = ['ModelVersion', 'max_depth', 'max_features', 'min_samples_leaf','min_samples_split', 'n_estimators', 'Iteration 0', 'Iteration 1', 'Iteration 2', 'Iteration 3', 'Iteration 4', 'MeanAccuracy', 'RunTime']
display(rfcdf)
del rfcdf, acclist

### Model with PCA
acclist = []

n_estimators       =  [10    , 10     , 10    , 10    , 10    , 10    , 10    , 10    , 10    , 10   , 10   , 10    , 10    , 10    , 10    , 10    , 10    , 10    , 10    , 10    , 10    , 10    , 10    , 15    , 20    , 30    , 50    ]  
max_features       =  ['auto', 'auto' , 'auto', 'auto', 'auto', 'auto', 'auto', 5     , 10    , 15   , 20   , None  , 'auto', 'auto', 'auto', 'auto', 'auto', 'auto', 'auto', 'auto', 'auto', 'auto', 'auto', 'auto', 'auto', 'auto', 'auto'] 
max_depth          =  [None  , None   , None  , None  , None  , None  , None  , None  , None  , None , None , None  , 10    , 15    , 20    , 25    , 30    , 17    , 18    , 19    , 21    , 22    , 23    , 20    , 20    , 20    , 20    ] 
min_samples_split  =  [2     , 8      , 12    , 18    , 20    , 24    , 36    , 8     , 8     , 8    , 8    , 8     , 8     , 8     , 8     , 8     , 8     , 8     , 8     , 8     , 8     , 8     , 8     , 8     , 8     , 8     , 8     ] 
min_samples_leaf   =  [1     , 4      , 6     , 9     , 10    , 12    , 18    , 4     , 4     , 4    , 4    , 4     , 4     , 4     , 4     , 4     , 4     , 4     , 4     , 4     , 4     , 4     , 4     , 4     , 4     , 4     , 4     ]


for i in range(0,len(n_estimators)):
    acclist.append(rfc_explorBinary_w_PCA(n_estimators      = n_estimators[i],
                                    max_features      = max_features[i],
                                    max_depth         = max_depth[i],
                                    min_samples_split = min_samples_split[i],
                                    min_samples_leaf  = min_samples_leaf[i],
                                    PCA               = PCA(n_components=22, svd_solver='randomized', random_state = seed)
                                   )
                  )

rfcdf = pd.DataFrame(pd.concat([pd.DataFrame({  "ModelVersion": "With PCA",
                                                "n_estimators": n_estimators,          
                                                "max_features": max_features,         
                                                "max_depth": max_depth,        
                                                "min_samples_split": min_samples_split,
                                                "min_samples_leaf": min_samples_leaf   
                                              }),
                               pd.DataFrame(acclist)], axis = 1).reindex())
rfcdf.columns = ['ModelVersion', 'max_depth', 'max_features', 'min_samples_leaf','min_samples_split', 'n_estimators', 'Iteration 0', 'Iteration 1', 'Iteration 2', 'Iteration 3', 'Iteration 4', 'MeanAccuracy', 'RunTime']
display(rfcdf)

#'Iteration 5', 'Iteration 6', 'Iteration 7', 'Iteration 8', 'Iteration 9', 
ModelVersion max_depth max_features min_samples_leaf min_samples_split n_estimators Iteration 0 Iteration 1 Iteration 2 Iteration 3 Iteration 4 MeanAccuracy RunTime
0 All Raw Features NaN auto 1 2 10 0.597320 0.697822 0.714477 0.739524 0.694268 0.688682 00:00:01.386349
1 All Raw Features NaN auto 4 8 10 0.628811 0.706868 0.717493 0.755615 0.713041 0.704365 00:00:01.439420
2 All Raw Features NaN auto 6 12 10 0.605360 0.715578 0.717828 0.735836 0.725444 0.700009 00:00:01.433700
3 All Raw Features NaN auto 9 18 10 0.640536 0.702178 0.726877 0.756621 0.721086 0.709459 00:00:01.394783
4 All Raw Features NaN auto 10 20 10 0.581910 0.701508 0.731233 0.766678 0.723768 0.701019 00:00:01.425776
5 All Raw Features NaN auto 12 24 10 0.623451 0.686432 0.720509 0.769695 0.715387 0.703095 00:00:01.384682
6 All Raw Features NaN auto 18 36 10 0.660302 0.712898 0.714142 0.753269 0.722427 0.712607 00:00:01.481318
7 All Raw Features NaN 5 9 18 10 0.591290 0.704523 0.714812 0.741200 0.729467 0.696258 00:00:01.383627
8 All Raw Features NaN 10 9 18 10 0.640201 0.705863 0.717493 0.743212 0.733490 0.708052 00:00:01.441708
9 All Raw Features NaN 15 9 18 10 0.597320 0.718258 0.717158 0.762655 0.732819 0.705642 00:00:01.428632
10 All Raw Features NaN 20 9 18 10 0.621106 0.712228 0.727212 0.755615 0.717399 0.706712 00:00:01.439869
11 All Raw Features NaN None 9 18 10 0.592965 0.697152 0.724866 0.755280 0.691250 0.692303 00:00:01.909577
12 All Raw Features 10.0 auto 9 18 10 0.601340 0.708543 0.715483 0.752263 0.726785 0.700883 00:00:01.410358
13 All Raw Features 15.0 auto 9 18 10 0.618425 0.707873 0.726206 0.746564 0.709353 0.701684 00:00:01.433669
14 All Raw Features 20.0 auto 9 18 10 0.651591 0.706198 0.730898 0.753604 0.729467 0.714352 00:00:01.416332
15 All Raw Features 25.0 auto 9 18 10 0.640536 0.702178 0.726877 0.756621 0.721421 0.709526 00:00:01.416294
16 All Raw Features 30.0 auto 9 18 10 0.640536 0.702178 0.726877 0.756621 0.721086 0.709459 00:00:01.434011
17 All Raw Features 17.0 auto 9 18 10 0.639531 0.706198 0.724866 0.757627 0.725444 0.710733 00:00:01.360963
18 All Raw Features 18.0 auto 9 18 10 0.608040 0.705528 0.708780 0.755280 0.725779 0.700681 00:00:01.306760
19 All Raw Features 19.0 auto 9 18 10 0.639196 0.705863 0.716153 0.748575 0.724103 0.706778 00:00:01.337880
20 All Raw Features 21.0 auto 9 18 10 0.623786 0.710218 0.724531 0.757291 0.722762 0.707718 00:00:01.353814
21 All Raw Features 22.0 auto 9 18 10 0.629481 0.705863 0.726206 0.757291 0.720416 0.707851 00:00:01.369665
22 All Raw Features 23.0 auto 9 18 10 0.634841 0.703183 0.728887 0.759973 0.719745 0.709326 00:00:01.451284
23 All Raw Features 20.0 auto 9 18 15 0.649916 0.696817 0.731903 0.751592 0.731814 0.712409 00:00:01.473479
24 All Raw Features 20.0 auto 9 18 20 0.640536 0.699497 0.735590 0.755615 0.727791 0.711806 00:00:01.508393
25 All Raw Features 20.0 auto 9 18 30 0.633501 0.704858 0.733244 0.756621 0.723433 0.710331 00:00:01.563398
26 All Raw Features 20.0 auto 9 18 50 0.634171 0.705193 0.727547 0.753604 0.726785 0.709460 00:00:01.618213
ModelVersion max_depth max_features min_samples_leaf min_samples_split n_estimators Iteration 0 Iteration 1 Iteration 2 Iteration 3 Iteration 4 MeanAccuracy RunTime
0 Top 15 Raw from PC NaN auto 1 2 10 0.556449 0.682412 0.732574 0.743547 0.710694 0.685135 00:00:01.285603
1 Top 15 Raw from PC NaN auto 4 8 10 0.591625 0.694137 0.730563 0.749916 0.730808 0.699410 00:00:01.315570
2 Top 15 Raw from PC NaN auto 6 12 10 0.571859 0.697487 0.698056 0.769024 0.723433 0.691972 00:00:01.294505
3 Top 15 Raw from PC NaN auto 9 18 10 0.595980 0.697822 0.737936 0.767684 0.737848 0.707454 00:00:01.298323
4 Top 15 Raw from PC NaN auto 10 20 10 0.605025 0.714573 0.732239 0.760979 0.723433 0.707250 00:00:01.298013
5 Top 15 Raw from PC NaN auto 12 24 10 0.634841 0.709548 0.728217 0.756621 0.733155 0.712476 00:00:01.378807
6 Top 15 Raw from PC NaN auto 18 36 10 0.649246 0.712898 0.717493 0.759638 0.731143 0.714084 00:00:01.369401
7 Top 15 Raw from PC NaN 5 9 18 10 0.608710 0.703853 0.728552 0.746229 0.719075 0.701284 00:00:01.372590
8 Top 15 Raw from PC NaN 10 9 18 10 0.591290 0.711558 0.751005 0.761985 0.716058 0.706379 00:00:01.373235
9 Top 15 Raw from PC NaN 15 9 18 10 0.588275 0.709213 0.725201 0.762320 0.729802 0.702962 00:00:01.243377
10 Top 15 Raw from PC NaN 20 9 18 10 0.598325 0.714238 0.730228 0.769024 0.698626 0.702088 00:00:01.363148
11 Top 15 Raw from PC NaN None 9 18 10 0.591625 0.696482 0.722520 0.759973 0.697285 0.693577 00:00:01.621609
12 Top 15 Raw from PC 10.0 5 9 18 10 0.564154 0.699497 0.710121 0.753939 0.711364 0.687815 00:00:01.309873
13 Top 15 Raw from PC 15.0 5 9 18 10 0.608710 0.716248 0.716153 0.765337 0.735166 0.708323 00:00:01.284895
14 Top 15 Raw from PC 20.0 5 9 18 10 0.602345 0.704858 0.725201 0.752933 0.725109 0.702089 00:00:01.267383
15 Top 15 Raw from PC 25.0 5 9 18 10 0.608710 0.703183 0.728552 0.746229 0.719075 0.701150 00:00:01.265133
16 Top 15 Raw from PC 30.0 5 9 18 10 0.608710 0.703853 0.728552 0.746229 0.719075 0.701284 00:00:01.276152
17 Top 15 Raw from PC 17.0 5 9 18 10 0.640871 0.705193 0.705429 0.750251 0.713711 0.703091 00:00:01.376205
18 Top 15 Raw from PC 18.0 5 9 18 10 0.615410 0.711223 0.728887 0.755615 0.710023 0.704232 00:00:01.379617
19 Top 15 Raw from PC 19.0 5 9 18 10 0.615745 0.702848 0.723190 0.745893 0.723098 0.702155 00:00:01.382620
20 Top 15 Raw from PC 21.0 5 9 18 10 0.604355 0.704523 0.726542 0.743547 0.716728 0.699139 00:00:01.372494
21 Top 15 Raw from PC 22.0 5 9 18 10 0.614740 0.704858 0.725871 0.742876 0.722092 0.702087 00:00:01.337215
22 Top 15 Raw from PC 23.0 5 9 18 10 0.605695 0.706198 0.721515 0.746229 0.719075 0.699742 00:00:01.288320
23 Top 15 Raw from PC 20.0 5 9 18 15 0.612395 0.709883 0.728217 0.754609 0.731814 0.707384 00:00:01.293580
24 Top 15 Raw from PC 20.0 5 9 18 20 0.609045 0.699497 0.724531 0.757962 0.733825 0.704972 00:00:01.488363
25 Top 15 Raw from PC 20.0 5 9 18 30 0.599330 0.701173 0.732239 0.758632 0.735836 0.705442 00:00:01.434138
26 Top 15 Raw from PC 20.0 5 9 18 50 0.620771 0.698827 0.731903 0.758632 0.728797 0.707786 00:00:01.586569
ModelVersion max_depth max_features min_samples_leaf min_samples_split n_estimators Iteration 0 Iteration 1 Iteration 2 Iteration 3 Iteration 4 MeanAccuracy RunTime
0 With PCA NaN auto 1 2 10 0.553099 0.554439 0.695710 0.688904 0.656051 0.629641 00:00:02.126942
1 With PCA NaN auto 4 8 10 0.630151 0.635176 0.706434 0.706336 0.699631 0.675546 00:00:02.127681
2 With PCA NaN auto 6 12 10 0.629146 0.616750 0.693029 0.700972 0.699631 0.667906 00:00:01.823887
3 With PCA NaN auto 9 18 10 0.659631 0.683417 0.706434 0.713711 0.720416 0.696722 00:00:02.038586
4 With PCA NaN auto 10 20 10 0.639866 0.654941 0.681971 0.716728 0.714717 0.681645 00:00:02.029480
5 With PCA NaN auto 12 24 10 0.653601 0.663987 0.700067 0.725109 0.716728 0.691898 00:00:02.003752
6 With PCA NaN auto 18 36 10 0.651591 0.647906 0.705429 0.712370 0.705665 0.684592 00:00:02.017173
7 With PCA NaN 5 4 8 10 0.601675 0.685427 0.699397 0.690580 0.713376 0.678091 00:00:02.110573
8 With PCA NaN 10 4 8 10 0.608040 0.622111 0.683981 0.692256 0.685887 0.658455 00:00:02.509257
9 With PCA NaN 15 4 8 10 0.616750 0.586935 0.689343 0.691250 0.685887 0.654033 00:00:02.749207
10 With PCA NaN 20 4 8 10 0.613400 0.631826 0.693365 0.683205 0.691586 0.662676 00:00:03.160426
11 With PCA NaN None 4 8 10 0.607705 0.603685 0.688673 0.687898 0.684211 0.654434 00:00:03.032729
12 With PCA 10.0 auto 4 8 10 0.660972 0.595645 0.692694 0.703319 0.701307 0.670787 00:00:02.042209
13 With PCA 15.0 auto 4 8 10 0.636851 0.634506 0.683646 0.703654 0.687898 0.669311 00:00:01.984044
14 With PCA 20.0 auto 4 8 10 0.620436 0.652931 0.699732 0.707006 0.697285 0.675478 00:00:02.077851
15 With PCA 25.0 auto 4 8 10 0.634506 0.639866 0.703418 0.709018 0.691586 0.675679 00:00:02.047444
16 With PCA 30.0 auto 4 8 10 0.629481 0.635176 0.705094 0.706336 0.698626 0.674942 00:00:01.956306
17 With PCA 17.0 auto 4 8 10 0.628476 0.626801 0.710456 0.699966 0.693597 0.671859 00:00:01.986730
18 With PCA 18.0 auto 4 8 10 0.631156 0.618425 0.693029 0.697620 0.693597 0.666766 00:00:02.120912
19 With PCA 19.0 auto 4 8 10 0.636851 0.629481 0.692694 0.694268 0.704660 0.671591 00:00:01.967130
20 With PCA 21.0 auto 4 8 10 0.619765 0.643216 0.721180 0.697620 0.682199 0.672796 00:00:02.058511
21 With PCA 22.0 auto 4 8 10 0.612395 0.609045 0.702078 0.709353 0.696614 0.665897 00:00:02.222123
22 With PCA 23.0 auto 4 8 10 0.623451 0.635511 0.694705 0.700637 0.688569 0.668574 00:00:02.220873
23 With PCA 20.0 auto 4 8 15 0.624791 0.667337 0.698391 0.717734 0.693932 0.680437 00:00:02.132646
24 With PCA 20.0 auto 4 8 20 0.625126 0.665327 0.693029 0.717063 0.700637 0.680236 00:00:02.071002
25 With PCA 20.0 auto 4 8 30 0.619430 0.632831 0.684651 0.716728 0.713376 0.673403 00:00:02.270887
26 With PCA 20.0 auto 4 8 50 0.621106 0.611055 0.689343 0.718069 0.719075 0.671730 00:00:02.855907
CPU times: user 5min 41s, sys: 10min 31s, total: 16min 13s
Wall time: 2min 15s

We have created a function to be re-used for our cross-validation Accuracy Scores. Inputs of PCA components, Model CLF object, original sample data, and a CV containing our test/train splits allow us to easily produce an array of Accuracy Scores for the different permutations of models tested. A XXXXXXTBDXXXXX plot is also displayed depicting a view of the misclassification values for each iteration. Finally, a confusion matrix is displayed for the last test/train iteration for further interpretation on results.

In [116]:
def plot_confusion_matrixBinary(cm, classes,
                          normalize=False,
                          title='Confusion matrix',
                          cmap=plt.cm.Blues):
    """
    This function prints and plots the confusion matrix.
    Normalization can be applied by setting `normalize=True`.
    """
    plt.rcParams['figure.figsize'] = (18, 6)
    plt.rcParams.update({'font.size': 16})
    plt.rc('xtick', labelsize=18)
    plt.rc('ytick', labelsize=18) 
    plt.imshow(cm, interpolation='nearest', cmap=cmap)
    plt.title(title, fontsize = 18)
    plt.colorbar()
    tick_marks = np.arange(len(classes))
    plt.xticks(tick_marks, classes, rotation=45)
    plt.yticks(tick_marks, classes)

    if normalize:
        cm = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis]
        print("Normalized confusion matrix")
    else:
        print('Confusion matrix, without normalization')

    print(cm)

    thresh = cm.max() / 2.
    for i, j in itertools.product(range(cm.shape[0]), range(cm.shape[1])):
        plt.text(j, i, round(cm[i, j],2),
                 horizontalalignment="center",
                 color="white" if cm[i, j] > thresh else "black")

    plt.tight_layout()
    plt.ylabel('True label', fontsize = 18)
    plt.xlabel('Predicted label', fontsize = 18)

    plt.show()
In [117]:
def plot_ROC_curve(X, y, mean_tpr, mean_fpr, cv = cv, ):
    
    plt.rcParams['figure.figsize'] = (12, 6)

    lw = 2

    plt.plot([0, 1], [0, 1], linestyle='--', lw=lw, color='k',
             label='Luck')

    mean_tpr /= cv.get_n_splits(X, y)
    mean_tpr[-1] = 1.0
    mean_auc = auc(mean_fpr, mean_tpr)
    plt.plot(mean_fpr, mean_tpr, color='g', linestyle='--',
             label='Mean ROC (area = %0.2f)' % mean_auc, lw=lw)

    plt.xlim([-0.05, 1.05])
    plt.ylim([-0.05, 1.05])
    plt.xlabel('False Positive Rate')
    plt.ylabel('True Positive Rate')
    plt.title('Receiver operating characteristic (ROC) Curve')
    plt.legend(loc="lower right")
    plt.show()
In [118]:
%%time

def compute_kfold_scores_ClassificationBinary( clf,
                                         PCA = "No",
                                         Data     = OPMAnalysisDataNoFamBinary,
                                         cols     = PCList,
                                         cv       = cv):

    y = Data["SEP"].values # get the labels we want    
    
    y = np.where(y == 'NS', 0, 1) # NS = 0; SC = 1
    
    X = Data[cols].as_matrix()


    # Run classifier with cross-validation and plot ROC curves

    # setup pipeline to take PCA, then fit a clf model
    if(PCA == "No"):
        clf_pipe = Pipeline(
            [('minMaxScaler', MinMaxScaler()),
             ('CLF',clf)]
        )
    else:
        clf_pipe = Pipeline(
            [('minMaxScaler', MinMaxScaler()),
             ('PCA', PCA),
             ('CLF',clf)]
        )
    
    colors = cycle(['cyan', 'indigo', 'seagreen', 'yellow', 'blue', 'darkorange', 'pink', 'darkred', 'dimgray', 'maroon', 'coral'])
    
    mean_tpr = 0.0
    mean_fpr = np.linspace(0, 1, 100)
    lw = 2
    i = 0
    
    accuracy = []
    #logloss = []
    
    for (train, test), color in zip(cv.split(X, y), colors):
        clf_pipe.fit(X[train],y[train])  # train object
        y_hat = clf_pipe.predict(X[test]) # get test set preditions
        
        probas_ = clf_pipe.fit(X[train], y[train]).predict_proba(X[test])
        
        # Compute ROC curve and area the curve
        fpr, tpr, thresholds = roc_curve(y[test], probas_[:, 1])
        mean_tpr += interp(mean_fpr, fpr, tpr)
        mean_tpr[0] = 0.0
        roc_auc = auc(fpr, tpr)
        
        plt.rcParams['figure.figsize'] = (12, 6)
        
        plt.plot(fpr, tpr, lw=lw, color=color,
                 label='ROC fold %d (area = %0.2f)' % (i, roc_auc))

        i += 1
    
    plot_ROC_curve(X, y, mean_tpr, mean_fpr)         
        #logloss.append(round(l,5)) 
    
    #print("Accuracy Ratings across all iterations: {0}\n\n\
#Average Accuracy: {1}\n\n\
#Log Loss Values across all iterations: {2}\n\n\
#Average Log Loss: {3}\n".format(accuracy, round(sum(accuracy)/len(accuracy),5), logloss,round(sum(logloss)/len(logloss),5)))

    for (train, test), color in zip(cv.split(X, y), colors):
        clf_pipe.fit(X[train],y[train])  # train object
        y_hat = clf_pipe.predict(X[test]) # get test set preditions
        
        a = float(mt.accuracy_score(y[test],y_hat))
        #l = float(mt.log_loss(y[test], y_hat))
        
        accuracy.append(round(a,5)) 
        
        ytestnames = np.where(y[test] ==  0,'NS','SC')

        yhatnames  = np.where(y_hat ==  0,'NS', 'SC')

        #print(set(list(y_hat)))
        print("confusion matrix\n{0}\n".format(pd.crosstab(ytestnames, yhatnames, rownames = ['True'], colnames = ['Predicted'], margins = True)))

            # Plot non-normalized confusion matrix
        plt.figure()
        plot_confusion_matrixBinary(confusion_matrix(y[test], y_hat), 
                              classes   =["NS",  "SC"], 
                              normalize =True,
                              title     ='Confusion matrix, with normalization')
    
    print("Accuracy Ratings across all iterations: {0}\n\n\
        Average Accuracy: {1}\n".format(accuracy, round(sum(accuracy)/len(accuracy),5)))

    return clf_pipe.named_steps['CLF'], accuracy
CPU times: user 7 µs, sys: 0 ns, total: 7 µs
Wall time: 12.6 µs
In [119]:
%%time

rfc_clf = RandomForestClassifier(n_estimators       = 15, 
                                 max_features       = 'auto', 
                                 max_depth          = 20.0, 
                                 min_samples_split  = 18, 
                                 min_samples_leaf   = 9,
                                 n_jobs             = -1, 
                                 random_state       = seed) # get object
    
rfc_clf, rfc_acc = compute_kfold_scores_ClassificationBinary(rfc_clf, 
                                                             ##PCA = PCA(n_components=22, svd_solver='randomized', random_state = seed),
                                                             cols = fullColumns)
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
confusion matrix
Predicted    NS    SC   All
True                       
NS          809   691  1500
SC          354  1131  1485
All        1163  1822  2985

Normalized confusion matrix
[[ 0.53933333  0.46066667]
 [ 0.23838384  0.76161616]]
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
confusion matrix
Predicted    NS   SC   All
True                      
NS         1358  142  1500
SC          763  722  1485
All        2121  864  2985

Normalized confusion matrix
[[ 0.90533333  0.09466667]
 [ 0.51380471  0.48619529]]
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
confusion matrix
Predicted   NS    SC   All
True                      
NS         829   670  1499
SC         130  1355  1485
All        959  2025  2984

Normalized confusion matrix
[[ 0.55303536  0.44696464]
 [ 0.08754209  0.91245791]]
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
confusion matrix
Predicted    NS    SC   All
True                       
NS          941   558  1499
SC          183  1301  1484
All        1124  1859  2983

Normalized confusion matrix
[[ 0.62775183  0.37224817]
 [ 0.12331536  0.87668464]]
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
confusion matrix
Predicted    NS    SC   All
True                       
NS          924   575  1499
SC          225  1259  1484
All        1149  1834  2983

Normalized confusion matrix
[[ 0.61641094  0.38358906]
 [ 0.15161725  0.84838275]]
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
Accuracy Ratings across all iterations: [0.64992, 0.69682, 0.7319, 0.75159, 0.73181]

        Average Accuracy: 0.71241

CPU times: user 8.81 s, sys: 2.77 s, total: 11.6 s
Wall time: 6.45 s
In [120]:
%%time
import os
from sklearn import tree
import pydotplus
import six
from sklearn.tree import export_graphviz
from IPython.display import SVG 



i_tree = 0
for tree_in_forest in rfc_clf.estimators_:       
    svgData = tree.export_graphviz(tree_in_forest, 
                         feature_names=fullColumns,
                         class_names=["NS", "SD"],
                         filled=True,
                         #rounded=True,
                         rotate = True,
                         label = 'All',
                         out_file=None)


    graph=pydotplus.graph_from_dot_data(svgData)
    
    if not os.path.exists('images'):
        os.makedirs('images')
    
    graph.write_svg('images/tree'+ str(i_tree) +'.svg')
        
    i_tree = i_tree + 1
CPU times: user 1min 22s, sys: 2.67 s, total: 1min 25s
Wall time: 1min 31s
In [121]:
SVG(filename='images/tree0.svg') 
Out[121]:
Tree 0 AGELVL_J <= 0.5 0.5 7521 [6003, 5934] NS 1 SEPCount_EFDATE_LOCLog <= 0.8506 0.4969 6730 [4920, 5756] SD 0->1 True 712 BLS_FEDERAL_TotalSep_Rate <= 0.6667 0.2425 791 [1083, 178] NS 0->712 False 2 LowerLimitAge <= 0.7222 0.4984 5851 [4385, 4904] SD 1->2 587 AGELVL_D <= 0.5 0.4739 879 [535, 852] SD 1->587 3 SALARYLog <= 0.2756 0.4687 4524 [2694, 4492] SD 2->3 462 TOA_20 <= 0.5 0.3151 1327 [1691, 412] NS 2->462 4 BLS_FEDERAL_Quits_Rate <= 0.75 0.3702 1403 [557, 1714] SD 3->4 175 YearsToRetirement <= 0.5 0.4915 3121 [2137, 2778] SD 3->175 5 LOSSqrt <= 0.2164 0.4097 787 [370, 917] SD 4->5 104 TOA_10 <= 0.5 0.3079 616 [187, 797] SD 4->104 6 LowerLimitAge <= 0.6111 0.3132 426 [138, 572] SD 5->6 67 IndAvgSalaryLog <= 0.2813 0.4808 361 [232, 345] SD 5->67 7 BLS_FEDERAL_OtherSep_Level <= 0.3889 0.3244 393 [133, 520] SD 6->7 66 0.16 33 [5, 52] SD 6->66 8 IndAvgSalaryLog <= 0.3211 0.2746 327 [91, 463] SD 7->8 57 SEPCount_EFDATE_LOCLog <= 0.4993 0.4885 66 [42, 57] SD 7->57 9 LOC_35 <= 0.5 0.3059 280 [88, 379] SD 8->9 52 LOSSqrt <= 0.109 0.0666 47 [3, 84] SD 8->52 10 TOA_15 <= 0.5 0.3124 270 [87, 362] SD 9->10 51 0.1049 10 [1, 17] SD 9->51 11 BLS_FEDERAL_Layoffs_Rate <= 0.1875 0.2659 146 [39, 208] SD 10->11 30 SEPCount_EFDATE_LOCLog <= 0.7895 0.3623 124 [48, 154] SD 10->30 12 LowerLimitAge <= 0.2778 0.1346 69 [9, 115] SD 11->12 23 TOA_38 <= 0.5 0.3688 77 [30, 93] SD 11->23 13 BLS_FEDERAL_TotalSep_Level <= 0.0735 0.1634 42 [7, 71] SD 12->13 20 SEPCount_EFDATE_OCCLog <= 0.8137 0.0832 27 [2, 44] SD 12->20 14 0.0 15 [0, 30] SD 13->14 15 SEPCount_EFDATE_LOCLog <= 0.7522 0.2491 27 [7, 41] SD 13->15 16 SEPCount_EFDATE_LOCLog <= 0.549 0.1207 18 [2, 29] SD 15->16 19 0.4152 9 [5, 12] SD 15->19 17 0.2604 9 [2, 11] SD 16->17 18 0.0 9 [0, 18] SD 16->18 21 0.0605 18 [1, 31] SD 20->21 22 0.1327 9 [1, 13] SD 20->22 24 BLS_FEDERAL_Quits_Level <= 0.375 0.2268 43 [9, 60] SD 23->24 27 BLS_FEDERAL_Layoffs_Level <= 0.2391 0.4753 34 [21, 33] SD 23->27 25 0.4121 22 [9, 22] SD 24->25 26 0.0 21 [0, 38] SD 24->26 28 0.4723 22 [21, 13] NS 27->28 29 0.0 12 [0, 20] SD 27->29 31 AGELVL_F <= 0.5 0.3967 102 [45, 120] SD 30->31 48 BLS_FEDERAL_JobOpenings_Level <= 0.4306 0.149 22 [3, 34] SD 30->48 32 LOSSqrt <= 0.0792 0.409 89 [41, 102] SD 31->32 47 0.2975 13 [4, 18] SD 31->47 33 BLS_FEDERAL_OtherSep_Rate <= 0.1667 0.1748 19 [3, 28] SD 32->33 36 YearsToRetirement <= 0.8333 0.4483 70 [38, 74] SD 32->36 34 0.355 9 [3, 10] SD 33->34 35 0.0 10 [0, 18] SD 33->35 37 IndAvgSalaryLog <= 0.1813 0.4545 39 [22, 41] SD 36->37 42 SEPCount_EFDATE_LOCLog <= 0.4828 0.4398 31 [16, 33] SD 36->42 38 0.4654 14 [12, 7] NS 37->38 39 SalaryOverUnderIndAvg <= 0.4546 0.3512 25 [10, 34] SD 37->39 40 0.4444 10 [6, 12] SD 39->40 41 0.2604 15 [4, 22] SD 39->41 43 0.2604 10 [2, 11] SD 42->43 44 SEPCount_EFDATE_LOCLog <= 0.7345 0.4753 21 [14, 22] SD 42->44 45 0.5 12 [10, 10] NS 44->45 46 0.375 9 [4, 12] SD 44->46 49 0.0 10 [0, 17] SD 48->49 50 0.255 12 [3, 17] SD 48->50 53 0.0 23 [0, 46] SD 52->53 54 BLS_FEDERAL_JobOpenings_Level <= 0.8194 0.1356 24 [3, 38] SD 52->54 55 0.0799 14 [1, 23] SD 54->55 56 0.2076 10 [2, 15] SD 54->56 58 0.4082 14 [6, 15] SD 57->58 59 IndAvgSalary <= 0.0824 0.497 52 [36, 42] SD 57->59 60 0.3324 13 [15, 4] NS 59->60 61 IndAvgSalary <= 0.1545 0.4585 39 [21, 38] SD 59->61 62 LOSSqrt <= 0.1448 0.375 26 [10, 30] SD 61->62 65 0.4875 13 [11, 8] NS 61->65 63 0.4444 17 [8, 16] SD 62->63 64 0.2188 9 [2, 14] SD 62->64 68 IndAvgSalaryLog <= 0.1946 0.4398 157 [79, 163] SD 67->68 85 TOA_38 <= 0.5 0.4963 204 [153, 182] SD 67->85 69 BLS_FEDERAL_TotalSep_Rate <= 0.125 0.4928 82 [55, 70] SD 68->69 82 BLS_FEDERAL_Layoffs_Level <= 0.2391 0.3261 75 [24, 93] SD 68->82 70 BLS_FEDERAL_TotalSep_Level <= 0.0588 0.4995 58 [47, 44] NS 69->70 79 SEPCount_EFDATE_LOCLog <= 0.5754 0.3599 24 [8, 26] SD 69->79 71 0.4082 14 [6, 15] SD 70->71 72 LowerLimitAge <= 0.5 0.4853 44 [41, 29] NS 70->72 73 SalaryOverUnderIndAvg <= 0.4768 0.4974 33 [30, 26] NS 72->73 78 0.3367 11 [11, 3] NS 72->78 74 BLS_FEDERAL_Quits_Level <= 0.125 0.3829 21 [23, 8] NS 73->74 77 0.4032 12 [7, 18] SD 73->77 75 0.4898 9 [8, 6] NS 74->75 76 0.2076 12 [15, 2] NS 74->76 80 0.2076 11 [2, 15] SD 79->80 81 0.4567 13 [6, 11] SD 79->81 83 0.375 61 [24, 72] SD 82->83 84 0.0 14 [0, 21] SD 82->84 86 IndAvgSalary <= 0.1545 0.4994 179 [140, 150] SD 85->86 101 SalaryOverUnderIndAvg <= 0.4631 0.4109 25 [13, 32] SD 85->101 87 AGELVL_C <= 0.5 0.4608 63 [64, 36] NS 86->87 96 BLS_FEDERAL_TotalSep_Rate <= 0.125 0.48 116 [76, 114] SD 86->96 88 BLS_FEDERAL_OtherSep_Level <= 0.1667 0.3872 51 [59, 21] NS 87->88 95 0.375 12 [5, 15] SD 87->95 89 0.074 13 [25, 1] NS 88->89 90 SALARYLog <= 0.2328 0.4664 38 [34, 20] NS 88->90 91 LowerLimitAge <= 0.3889 0.4829 21 [11, 16] SD 90->91 94 0.2524 17 [23, 4] NS 90->94 92 0.3911 11 [4, 11] SD 91->92 93 0.4861 10 [7, 5] NS 91->93 97 0.4951 80 [72, 59] NS 96->97 98 BLS_FEDERAL_Layoffs_Level <= 0.2174 0.1264 36 [4, 55] SD 96->98 99 0.2449 19 [4, 24] SD 98->99 100 0.0 17 [0, 31] SD 98->100 102 0.2975 12 [4, 18] SD 101->102 103 0.4764 13 [9, 14] SD 101->103 105 LOSSqrt <= 0.3095 0.2113 406 [79, 579] SD 104->105 146 IndAvgSalary <= 0.162 0.4431 210 [108, 218] SD 104->146 106 SEPCount_EFDATE_LOCLog <= 0.4981 0.1761 385 [61, 564] SD 105->106 145 0.4959 21 [18, 15] NS 105->145 107 BLS_FEDERAL_OtherSep_Level <= 0.6111 0.3367 89 [30, 110] SD 106->107 116 IndAvgSalary <= 0.1465 0.1197 296 [31, 454] SD 106->116 108 BLS_FEDERAL_OtherSep_Level <= 0.3889 0.4254 55 [27, 61] SD 107->108 111 TOA_38 <= 0.5 0.1087 34 [3, 49] SD 107->111 109 0.4002 27 [13, 34] SD 108->109 110 0.4497 28 [14, 27] SD 108->110 112 SEPCount_EFDATE_OCCLog <= 0.7055 0.1653 23 [3, 30] SD 111->112 115 0.0 11 [0, 19] SD 111->115 113 0.42 9 [3, 7] SD 112->113 114 0.0 14 [0, 23] SD 112->114 117 BLS_FEDERAL_OtherSep_Level <= 0.6111 0.1648 185 [26, 261] SD 116->117 138 LOSSqrt <= 0.2014 0.0492 111 [5, 193] SD 116->138 118 SEPCount_EFDATE_LOCLog <= 0.6839 0.2147 120 [23, 165] SD 117->118 131 GSEGRD <= 0.125 0.0588 65 [3, 96] SD 117->131 119 SEPCount_EFDATE_LOCLog <= 0.6064 0.1158 49 [5, 76] SD 118->119 122 IndAvgSalaryLog <= 0.2006 0.2798 71 [18, 89] SD 118->122 120 0.1938 24 [5, 41] SD 119->120 121 0.0 25 [0, 35] SD 119->121 123 IndAvgSalaryLog <= 0.1608 0.1284 37 [4, 54] SD 122->123 126 AGELVL_C <= 0.5 0.4082 34 [14, 35] SD 122->126 124 0.0 21 [0, 31] SD 123->124 125 0.2524 16 [4, 23] SD 123->125 127 IndAvgSalary <= 0.1351 0.4628 23 [12, 21] SD 126->127 130 0.2188 11 [2, 14] SD 126->130 128 0.3599 14 [4, 13] SD 127->128 129 0.5 9 [8, 8] NS 127->129 132 0.0 17 [0, 25] SD 131->132 133 SalaryOverUnderIndAvg <= 0.4614 0.0778 48 [3, 71] SD 131->133 134 LowerLimitAge <= 0.1667 0.149 23 [3, 34] SD 133->134 137 0.0 25 [0, 37] SD 133->137 135 0.0 10 [0, 17] SD 134->135 136 0.255 13 [3, 17] SD 134->136 139 LowerLimitAge <= 0.2778 0.0118 90 [1, 167] SD 138->139 144 0.2311 21 [4, 26] SD 138->144 140 IndAvgSalaryLog <= 0.315 0.0217 52 [1, 90] SD 139->140 143 0.0 38 [0, 77] SD 139->143 141 0.0512 21 [1, 37] SD 140->141 142 0.0 31 [0, 53] SD 140->142 147 BLS_FEDERAL_Layoffs_Rate <= 0.5625 0.4761 154 [93, 145] SD 146->147 168 IndAvgSalaryLog <= 0.334 0.2828 56 [15, 73] SD 146->168 148 SEPCount_EFDATE_OCCLog <= 0.9437 0.4865 132 [89, 124] SD 147->148 167 0.2688 22 [4, 21] SD 147->167 149 BLS_FEDERAL_TotalSep_Rate <= 0.25 0.4959 119 [85, 102] SD 148->149 166 0.2604 13 [4, 22] SD 148->166 150 AGELVL_E <= 0.5 0.4929 85 [59, 75] SD 149->150 161 GSEGRD <= 0.4375 0.4998 34 [26, 27] SD 149->161 151 SALARYLog <= 0.2252 0.4947 69 [48, 59] SD 150->151 160 0.4829 16 [11, 16] SD 150->160 152 SALARYLog <= 0.203 0.4991 45 [37, 34] NS 151->152 159 0.4244 24 [11, 25] SD 151->159 153 BLS_FEDERAL_JobOpenings_Level <= 0.4028 0.4928 32 [22, 28] SD 152->153 158 0.4082 13 [15, 6] NS 152->158 154 SEPCount_EFDATE_LOCLog <= 0.5576 0.4898 22 [15, 20] SD 153->154 157 0.4978 10 [7, 8] SD 153->157 155 0.4082 9 [4, 10] SD 154->155 156 0.4989 13 [11, 10] NS 154->156 162 0.4959 13 [10, 12] SD 161->162 163 SalaryOverUnderIndAvg <= 0.4639 0.4995 21 [16, 15] NS 161->163 164 0.4898 9 [8, 6] NS 163->164 165 0.4983 12 [8, 9] SD 163->165 169 BLS_FEDERAL_OtherSep_Level <= 0.6111 0.2137 46 [9, 65] SD 168->169 174 0.4898 10 [6, 8] SD 168->174 170 SEPCount_EFDATE_LOCLog <= 0.6372 0.162 25 [4, 41] SD 169->170 173 0.2854 21 [5, 24] SD 169->173 171 0.1172 16 [2, 30] SD 170->171 172 0.2604 9 [2, 11] SD 170->172 176 BLS_FEDERAL_JobOpenings_Rate <= 0.125 0.4923 1050 [936, 729] NS 175->176 277 BLS_FEDERAL_Layoffs_Level <= 0.0217 0.466 2071 [1201, 2049] SD 175->277 177 IndAvgSalaryLog <= 0.3195 0.4697 170 [95, 157] SD 176->177 196 BLS_FEDERAL_JobOpenings_Level <= 0.4028 0.4819 880 [841, 572] NS 176->196 178 0.355 10 [10, 3] NS 177->178 179 BLS_FEDERAL_Quits_Rate <= 0.25 0.4583 160 [85, 154] SD 177->179 180 AGELVL_H <= 0.5 0.4767 82 [49, 76] SD 179->180 185 SEPCount_EFDATE_LOCLog <= 0.5782 0.4321 78 [36, 78] SD 179->185 181 SALARYLog <= 0.4476 0.4395 33 [15, 31] SD 180->181 184 0.4903 49 [34, 45] SD 180->184 182 0.4959 17 [12, 10] NS 181->182 183 0.2188 16 [3, 21] SD 181->183 186 IndAvgSalaryLog <= 0.4498 0.1284 18 [2, 27] SD 185->186 189 IndAvgSalaryLog <= 0.4045 0.48 60 [34, 51] SD 185->189 187 0.1244 9 [1, 14] SD 186->187 188 0.1327 9 [1, 13] SD 186->188 190 0.1172 9 [1, 15] SD 189->190 191 AGELVL_H <= 0.5 0.4991 51 [33, 36] SD 189->191 192 0.4995 25 [16, 17] SD 191->192 193 GSEGRD <= 0.6875 0.4985 26 [17, 19] SD 191->193 194 0.4567 9 [11, 6] NS 193->194 195 0.4321 17 [6, 13] SD 193->195 197 TOA_10 <= 0.5 0.3688 352 [431, 139] NS 196->197 234 BLS_FEDERAL_JobOpenings_Level <= 0.8194 0.4996 528 [410, 433] SD 196->234 198 SEPCount_EFDATE_LOCLog <= 0.685 0.5 109 [84, 85] SD 197->198 213 GSEGRD <= 0.5625 0.2331 243 [347, 54] NS 197->213 199 LOSSqrt <= 0.2467 0.4407 40 [41, 20] NS 198->199 204 LOC_51 <= 0.5 0.4793 69 [43, 65] SD 198->204 200 SalaryOverUnderIndAvg <= 0.4794 0.4745 19 [12, 19] SD 199->200 203 0.0644 21 [29, 1] NS 199->203 201 0.355 10 [3, 10] SD 200->201 202 0.5 9 [9, 9] NS 200->202 205 LowerLimitAge <= 0.6111 0.4903 55 [37, 49] SD 204->205 212 0.3967 14 [6, 16] SD 204->212 206 IndAvgSalaryLog <= 0.6316 0.4392 28 [14, 29] SD 205->206 211 0.4976 27 [23, 20] NS 205->211 207 0.0 9 [0, 12] SD 206->207 208 SALARYLog <= 0.6291 0.4953 19 [14, 17] SD 206->208 209 0.2604 9 [11, 2] NS 208->209 210 0.2778 10 [3, 15] SD 208->210 214 BLS_FEDERAL_TotalSep_Level <= 0.1765 0.4002 30 [34, 13] NS 213->214 217 AGELVL_H <= 0.5 0.2048 213 [313, 41] NS 213->217 215 0.2449 14 [18, 3] NS 214->215 216 0.4734 16 [16, 10] NS 214->216 218 BLS_FEDERAL_TotalSep_Rate <= 0.125 0.2422 86 [128, 21] NS 217->218 227 BLS_FEDERAL_Layoffs_Level <= 0.0652 0.1761 127 [185, 20] NS 217->227 219 GSEGRD <= 0.6875 0.205 40 [61, 8] NS 218->219 222 GSEGRD <= 0.8125 0.2722 46 [67, 13] NS 218->222 220 0.2778 15 [20, 4] NS 219->220 221 0.162 25 [41, 4] NS 219->221 223 GSEGRD <= 0.6875 0.2344 33 [51, 8] NS 222->223 226 0.3628 13 [16, 5] NS 222->226 224 0.2311 19 [26, 4] NS 223->224 225 0.2378 14 [25, 4] NS 223->225 228 SALARYLog <= 0.449 0.0907 64 [100, 5] NS 227->228 233 0.255 63 [85, 15] NS 227->233 229 SALARYLog <= 0.3995 0.2637 22 [27, 5] NS 228->229 232 0.0 42 [73, 0] NS 228->232 230 0.0868 13 [21, 1] NS 229->230 231 0.48 9 [6, 4] NS 229->231 235 LowerLimitAge <= 0.6111 0.4485 268 [145, 282] SD 234->235 262 BLS_FEDERAL_JobOpenings_Level <= 0.9306 0.4625 260 [265, 151] NS 234->262 236 LOC_51 <= 0.5 0.371 125 [47, 144] SD 235->236 243 SalaryOverUnderIndAvg <= 0.494 0.4856 143 [98, 138] SD 235->243 237 SALARYLog <= 0.4373 0.3435 114 [37, 131] SD 236->237 242 0.4915 11 [10, 13] SD 236->242 238 LOSSqrt <= 0.1209 0.4147 67 [27, 65] SD 237->238 241 0.2285 47 [10, 66] SD 237->241 239 0.0 10 [0, 13] SD 238->239 240 0.4499 57 [27, 52] SD 238->240 244 SEPCount_EFDATE_OCCLog <= 0.8538 0.43 84 [46, 101] SD 243->244 255 IndAvgSalaryLog <= 0.3187 0.4858 59 [52, 37] NS 243->255 245 LOSSqrt <= 0.5609 0.3176 56 [20, 81] SD 244->245 254 0.4915 28 [26, 20] NS 244->254 246 SEPCount_EFDATE_OCCLog <= 0.736 0.1544 47 [7, 76] SD 245->246 253 0.4012 9 [13, 5] NS 245->253 247 SEPCount_EFDATE_LOCLog <= 0.5135 0.2061 34 [7, 53] SD 246->247 252 0.0 13 [0, 23] SD 246->252 248 0.0 11 [0, 19] SD 247->248 249 GSEGRD <= 0.6875 0.2832 23 [7, 34] SD 247->249 250 0.1723 13 [2, 19] SD 249->250 251 0.375 10 [5, 15] SD 249->251 256 0.4132 14 [7, 17] SD 255->256 257 SEPCount_EFDATE_LOCLog <= 0.6197 0.426 45 [45, 20] NS 255->257 258 0.4898 16 [9, 12] SD 257->258 259 BLS_FEDERAL_TotalSep_Rate <= 0.25 0.2975 29 [36, 8] NS 257->259 260 0.2688 17 [21, 4] NS 259->260 261 0.3324 12 [15, 4] NS 259->261 263 TOA_15 <= 0.5 0.3562 181 [222, 67] NS 262->263 276 0.4479 79 [43, 84] SD 262->276 264 IndAvgSalary <= 0.462 0.3245 164 [211, 54] NS 263->264 275 0.4965 17 [11, 13] SD 263->275 265 SalaryOverUnderIndAvg <= 0.5351 0.3723 120 [140, 46] NS 264->265 274 0.182 44 [71, 8] NS 264->274 266 YearsToRetirement <= 0.3889 0.3387 109 [127, 35] NS 265->266 273 0.4965 11 [13, 11] NS 265->273 267 0.32 56 [68, 17] NS 266->267 268 SALARYLog <= 0.4359 0.3582 53 [59, 18] NS 266->268 269 IndAvgSalaryLog <= 0.4444 0.2491 34 [41, 7] NS 268->269 272 0.4709 19 [18, 11] NS 268->272 270 0.1172 22 [30, 2] NS 269->270 271 0.4297 12 [11, 5] NS 269->271 278 YearsToRetirement <= 0.6111 0.4813 238 [225, 152] NS 277->278 295 TOA_38 <= 0.5 0.4486 1833 [976, 1897] SD 277->295 279 SALARYLog <= 0.4765 0.4402 67 [72, 35] NS 278->279 286 LOC_13 <= 0.5 0.4911 171 [153, 117] NS 278->286 280 SEPCount_EFDATE_LOCLog <= 0.4779 0.3813 48 [58, 20] NS 279->280 283 SEPCount_EFDATE_LOCLog <= 0.7978 0.4994 19 [14, 15] SD 279->283 281 0.5 9 [8, 8] NS 280->281 282 0.3122 39 [50, 12] NS 280->282 284 0.1528 9 [1, 11] SD 283->284 285 0.3599 10 [13, 4] NS 283->285 287 IndAvgSalary <= 0.3227 0.4947 160 [139, 113] NS 286->287 294 0.3457 11 [14, 4] NS 286->294 288 IndAvgSalary <= 0.2396 0.5 86 [68, 68] NS 287->288 293 0.4749 74 [71, 45] NS 287->293 289 IndAvgSalary <= 0.2143 0.4742 53 [54, 34] NS 288->289 292 0.4132 33 [14, 34] SD 288->292 290 0.4988 28 [19, 21] SD 289->290 291 0.395 25 [35, 13] NS 289->291 296 BLS_FEDERAL_TotalSep_Rate <= 0.125 0.4617 1591 [904, 1596] SD 295->296 441 GSEGRD <= 0.6875 0.3115 242 [72, 301] SD 295->441 297 LOC_12 <= 0.5 0.4957 546 [385, 464] SD 296->297 356 BLS_FEDERAL_JobOpenings_Level <= 0.4028 0.4311 1045 [519, 1132] SD 296->356 298 BLS_FEDERAL_OtherSep_Level <= 0.0556 0.4959 531 [373, 447] SD 297->298 355 0.4851 15 [12, 17] SD 297->355 299 LOSSqrt <= 0.2495 0.3684 145 [56, 174] SD 298->299 316 IndAvgSalary <= 0.2213 0.4972 386 [317, 273] NS 298->316 300 GSEGRD <= 0.5625 0.1528 52 [7, 77] SD 299->300 307 SALARYLog <= 0.4638 0.446 93 [49, 97] SD 299->307 301 0.0 15 [0, 24] SD 300->301 302 AGELVL_E <= 0.5 0.2061 37 [7, 53] SD 300->302 303 IndAvgSalaryLog <= 0.4577 0.1388 26 [3, 37] SD 302->303 306 0.32 11 [4, 16] SD 302->306 304 0.3967 9 [3, 8] SD 303->304 305 0.0 17 [0, 29] SD 303->305 308 IndAvgSalary <= 0.3086 0.4853 62 [41, 58] SD 307->308 311 LOSSqrt <= 0.3206 0.2825 31 [8, 39] SD 307->311 309 0.4132 47 [21, 51] SD 308->309 310 0.3841 15 [20, 7] NS 308->310 312 0.48 9 [6, 9] SD 311->312 313 IndAvgSalaryLog <= 0.6631 0.1172 22 [2, 30] SD 311->313 314 0.2188 12 [2, 14] SD 313->314 315 0.0 10 [0, 16] SD 313->315 317 AGELVL_E <= 0.5 0.421 54 [25, 58] SD 316->317 320 BLS_FEDERAL_JobOpenings_Rate <= 0.4167 0.4885 332 [292, 215] NS 316->320 318 0.4875 40 [24, 33] SD 317->318 319 0.074 14 [1, 25] SD 317->319 321 SEPCount_EFDATE_LOCLog <= 0.5841 0.4444 117 [56, 112] SD 320->321 338 LOC_06 <= 0.5 0.423 215 [236, 103] NS 320->338 322 LowerLimitAge <= 0.3889 0.4985 26 [19, 17] NS 321->322 325 IndAvgSalaryLog <= 0.4162 0.4035 91 [37, 95] SD 321->325 323 0.4654 14 [12, 7] NS 322->323 324 0.4844 12 [7, 10] SD 322->324 326 0.32 12 [12, 3] NS 325->326 327 LowerLimitAge <= 0.2778 0.336 79 [25, 92] SD 325->327 328 LowerLimitAge <= 0.1667 0.4314 37 [17, 37] SD 327->328 333 AGELVL_E <= 0.5 0.2217 42 [8, 55] SD 327->333 329 0.2975 9 [2, 9] SD 328->329 330 IndAvgSalaryLog <= 0.5526 0.4543 28 [15, 28] SD 328->330 331 0.4993 17 [14, 13] NS 330->331 332 0.1172 11 [1, 15] SD 330->332 334 LOSSqrt <= 0.3664 0.2945 26 [7, 32] SD 333->334 337 0.0799 16 [1, 23] SD 333->337 335 0.0768 17 [1, 24] SD 334->335 336 0.4898 9 [6, 8] SD 334->336 339 LOSSqrt <= 0.3674 0.4093 199 [226, 91] NS 338->339 354 0.4959 16 [10, 12] SD 338->354 340 SEPCount_EFDATE_LOCLog <= 0.8172 0.4595 147 [149, 83] NS 339->340 347 GSEGRD <= 0.8125 0.1705 52 [77, 8] NS 339->347 341 0.4132 108 [119, 49] NS 340->341 342 GSEGRD <= 0.9375 0.498 39 [30, 34] SD 340->342 343 SALARYLog <= 0.459 0.4943 26 [21, 26] SD 342->343 346 0.4983 13 [9, 8] NS 342->346 344 0.4995 17 [16, 15] NS 343->344 345 0.4297 9 [5, 11] SD 343->345 348 LowerLimitAge <= 0.3889 0.1244 33 [56, 4] NS 347->348 353 0.2688 19 [21, 4] NS 347->353 349 IndAvgSalaryLog <= 0.4474 0.0526 21 [36, 1] NS 348->349 352 0.2268 12 [20, 3] NS 348->352 350 0.0 9 [20, 0] NS 349->350 351 0.1107 12 [16, 1] NS 349->351 357 BLS_FEDERAL_Layoffs_Rate <= 0.1875 0.484 499 [317, 455] SD 356->357 374 BLS_FEDERAL_TotalSep_Level <= 0.3088 0.354 546 [202, 677] SD 356->374 358 LOC_42 <= 0.5 0.4998 326 [244, 254] SD 357->358 373 0.3909 173 [73, 201] SD 357->373 359 SEPCount_EFDATE_OCCLog <= 0.9212 0.4995 314 [234, 250] SD 358->359 372 0.4082 12 [10, 4] NS 358->372 360 LOSSqrt <= 0.3895 0.4996 288 [227, 215] NS 359->360 371 0.2778 26 [7, 35] SD 359->371 361 0.4941 230 [156, 194] SD 360->361 362 YearsToRetirement <= 0.7222 0.3523 58 [71, 21] NS 360->362 363 GSEGRD <= 0.9375 0.317 49 [65, 16] NS 362->363 370 0.4959 9 [6, 5] NS 362->370 364 IndAvgSalary <= 0.3629 0.2744 40 [56, 11] NS 363->364 369 0.4592 9 [9, 5] NS 363->369 365 AGELVL_F <= 0.5 0.3482 28 [38, 11] NS 364->365 368 0.0 12 [18, 0] NS 364->368 366 0.4717 12 [13, 8] NS 365->366 367 0.1913 16 [25, 3] NS 365->367 375 LOC_51 <= 0.5 0.364 334 [128, 407] SD 374->375 418 SalaryOverUnderIndAvg <= 0.4996 0.3377 212 [74, 270] SD 374->418 376 SEPCount_EFDATE_LOCLog <= 0.6136 0.3792 296 [119, 349] SD 375->376 413 SALARYLog <= 0.3808 0.2326 38 [9, 58] SD 375->413 377 SalaryOverUnderIndAvg <= 0.4351 0.2351 106 [23, 146] SD 376->377 390 BLS_FEDERAL_JobOpenings_Rate <= 0.625 0.436 190 [96, 203] SD 376->390 378 0.0 23 [0, 37] SD 377->378 379 SEPCount_EFDATE_LOCLog <= 0.4515 0.2878 83 [23, 109] SD 377->379 380 BLS_FEDERAL_TotalSep_Level <= 0.2059 0.1271 27 [3, 41] SD 379->380 383 SEPCount_EFDATE_OCCLog <= 0.6056 0.3512 56 [20, 68] SD 379->383 381 0.1588 15 [2, 21] SD 380->381 382 0.0907 12 [1, 20] SD 380->382 384 0.1528 17 [2, 22] SD 383->384 385 BLS_FEDERAL_JobOpenings_Rate <= 0.625 0.4043 39 [18, 46] SD 383->385 386 IndAvgSalary <= 0.2462 0.2778 19 [6, 30] SD 385->386 389 0.4898 20 [12, 16] SD 385->389 387 0.1975 9 [2, 16] SD 386->387 388 0.3457 10 [4, 14] SD 386->388 391 SEPCount_EFDATE_OCCLog <= 0.5013 0.4729 93 [56, 90] SD 390->391 404 LOC_13 <= 0.5 0.3862 97 [40, 113] SD 390->404 392 IndAvgSalaryLog <= 0.5476 0.4856 33 [31, 22] NS 391->392 397 YearsToRetirement <= 0.8333 0.3931 60 [25, 68] SD 391->397 393 SALARYLog <= 0.3605 0.4996 22 [18, 17] NS 392->393 396 0.4012 11 [13, 5] NS 392->396 394 0.4835 12 [13, 9] NS 393->394 395 0.4734 10 [5, 8] SD 393->395 398 AGELVL_F <= 0.5 0.4065 49 [21, 53] SD 397->398 403 0.3324 11 [4, 15] SD 397->403 399 SEPCount_EFDATE_OCCLog <= 0.7427 0.4105 33 [15, 37] SD 398->399 402 0.3967 16 [6, 16] SD 398->402 400 0.2778 17 [5, 25] SD 399->400 401 0.4959 16 [10, 12] SD 399->401 405 LOC_24 <= 0.5 0.4063 86 [38, 96] SD 404->405 412 0.1884 11 [2, 17] SD 404->412 406 LowerLimitAge <= 0.3889 0.3676 65 [25, 78] SD 405->406 411 0.487 21 [13, 18] SD 405->411 407 LOC_06 <= 0.5 0.3506 48 [17, 58] SD 406->407 410 0.4082 17 [8, 20] SD 406->410 408 0.4488 37 [17, 33] SD 407->408 409 0.0 11 [0, 25] SD 407->409 414 BLS_FEDERAL_JobOpenings_Rate <= 0.625 0.1298 25 [3, 40] SD 413->414 417 0.375 13 [6, 18] SD 413->417 415 0.1528 14 [2, 22] SD 414->415 416 0.0997 11 [1, 18] SD 414->416 419 BLS_FEDERAL_TotalSep_Rate <= 0.6667 0.301 186 [55, 243] SD 418->419 438 LOSSqrt <= 0.3616 0.4849 26 [19, 27] SD 418->438 420 SalaryOverUnderIndAvg <= 0.4444 0.2597 107 [25, 138] SD 419->420 435 AGELVL_E <= 0.5 0.3457 79 [30, 105] SD 419->435 421 AGELVL_D <= 0.5 0.375 40 [14, 42] SD 420->421 428 SALARYLog <= 0.3515 0.1845 67 [11, 96] SD 420->428 422 IndAvgSalaryLog <= 0.4478 0.4218 31 [13, 30] SD 421->422 427 0.142 9 [1, 12] SD 421->427 423 0.48 9 [9, 6] NS 422->423 424 IndAvgSalaryLog <= 0.5426 0.2449 22 [4, 24] SD 422->424 425 0.32 9 [2, 8] SD 424->425 426 0.1975 13 [2, 16] SD 424->426 429 IndAvgSalary <= 0.2275 0.0384 29 [1, 50] SD 428->429 432 YearsToRetirement <= 0.6111 0.2934 38 [10, 46] SD 428->432 430 0.0 14 [0, 27] SD 429->430 431 0.0799 15 [1, 23] SD 429->431 433 0.3367 11 [3, 11] SD 432->433 434 0.2778 27 [7, 35] SD 432->434 436 0.2627 54 [14, 76] SD 435->436 437 0.4583 25 [16, 29] SD 435->437 439 0.3911 17 [8, 22] SD 438->439 440 0.4297 9 [11, 5] NS 438->440 442 LOSSqrt <= 0.1774 0.2341 144 [31, 198] SD 441->442 457 AGELVL_E <= 0.5 0.4073 98 [41, 103] SD 441->457 443 SEPCount_EFDATE_OCCLog <= 0.5713 0.0689 47 [3, 81] SD 442->443 446 BLS_FEDERAL_OtherSep_Rate <= 0.1667 0.3116 97 [28, 117] SD 442->446 444 0.1855 18 [3, 26] SD 443->444 445 0.0 29 [0, 55] SD 443->445 447 SALARYLog <= 0.3768 0.4614 22 [13, 23] SD 446->447 450 SEPCount_EFDATE_OCCLog <= 0.867 0.2374 75 [15, 94] SD 446->450 448 0.3599 12 [4, 13] SD 447->448 449 0.4986 10 [9, 10] SD 447->449 451 SalaryOverUnderIndAvg <= 0.449 0.1352 66 [7, 89] SD 450->451 456 0.4734 9 [8, 5] NS 450->456 452 0.375 12 [4, 12] SD 451->452 453 LOSSqrt <= 0.3195 0.0722 54 [3, 77] SD 451->453 454 0.0 33 [0, 51] SD 453->454 455 0.1855 21 [3, 26] SD 453->455 458 0.4012 72 [30, 78] SD 457->458 459 SalaryOverUnderIndAvg <= 0.4515 0.4244 26 [11, 25] SD 457->459 460 0.2975 15 [4, 18] SD 459->460 461 0.5 11 [7, 7] NS 459->461 463 TOA_38 <= 0.5 0.3051 1316 [1691, 391] NS 462->463 586 0.0 11 [0, 21] SD 462->586 464 TOA_10 <= 0.5 0.2882 1190 [1565, 331] NS 463->464 569 AGELVL_I <= 0.5 0.437 126 [126, 60] NS 463->569 465 BLS_FEDERAL_TotalSep_Rate <= 0.125 0.4971 151 [109, 127] SD 464->465 482 AGELVL_I <= 0.5 0.2156 1039 [1456, 204] NS 464->482 466 TOA_30 <= 0.5 0.4932 75 [67, 53] NS 465->466 473 SalaryOverUnderIndAvg <= 0.4921 0.462 76 [42, 74] SD 465->473 467 BLS_FEDERAL_Layoffs_Level <= 0.0217 0.4117 45 [20, 49] SD 466->467 472 0.1446 30 [47, 4] NS 466->472 468 0.4717 15 [8, 13] SD 467->468 469 LOSSqrt <= 0.1961 0.375 30 [12, 36] SD 467->469 470 0.0 14 [0, 26] SD 469->470 471 0.4959 16 [12, 10] NS 469->471 474 TOA_15 <= 0.5 0.2945 51 [14, 64] SD 473->474 479 IndAvgSalaryLog <= 0.6611 0.3878 25 [28, 10] NS 473->479 475 0.4444 12 [7, 14] SD 474->475 476 LOSSqrt <= 0.1239 0.2155 39 [7, 50] SD 474->476 477 0.0 19 [0, 30] SD 476->477 478 0.3841 20 [7, 20] SD 476->478 480 0.5 9 [7, 7] NS 479->480 481 0.2188 16 [21, 3] NS 479->481 483 LOC_06 <= 0.5 0.0859 408 [637, 30] NS 482->483 514 SalaryOverUnderIndAvg <= 0.4825 0.289 631 [819, 174] NS 482->514 484 IndAvgSalary <= 0.8098 0.0888 396 [614, 30] NS 483->484 513 0.0 12 [23, 0] NS 483->513 485 BLS_FEDERAL_Quits_Rate <= 0.25 0.0735 386 [604, 24] NS 484->485 512 0.4688 10 [10, 6] NS 484->512 486 0.0 19 [30, 0] NS 485->486 487 LOSSqrt <= 0.2604 0.077 367 [574, 24] NS 485->487 488 0.4734 10 [5, 8] SD 487->488 489 SEPCount_EFDATE_OCCLog <= 0.6668 0.0532 357 [569, 16] NS 487->489 490 IndAvgSalaryLog <= 0.2866 0.0763 198 [314, 13] NS 489->490 505 BLS_FEDERAL_TotalSep_Rate <= 0.25 0.023 159 [255, 3] NS 489->505 491 0.4567 12 [11, 6] NS 490->491 492 SALARYLog <= 0.325 0.0441 186 [303, 7] NS 490->492 493 SEPCount_EFDATE_OCCLog <= 0.5357 0.1609 19 [31, 3] NS 492->493 496 SalaryOverUnderIndAvg <= 0.5132 0.0286 167 [272, 4] NS 492->496 494 0.1884 9 [17, 2] NS 493->494 495 0.1244 10 [14, 1] NS 493->495 497 BLS_FEDERAL_JobOpenings_Rate <= 0.2083 0.0512 92 [148, 4] NS 496->497 504 0.0 75 [124, 0] NS 496->504 498 0.0 29 [49, 0] NS 497->498 499 BLS_FEDERAL_JobOpenings_Level <= 0.4028 0.0747 63 [99, 4] NS 497->499 500 0.1653 22 [30, 3] NS 499->500 501 BLS_FEDERAL_OtherSep_Level <= 0.2222 0.0282 41 [69, 1] NS 499->501 502 0.0713 16 [26, 1] NS 501->502 503 0.0 25 [43, 0] NS 501->503 506 BLS_FEDERAL_Layoffs_Level <= 0.1957 0.0321 107 [181, 3] NS 505->506 511 0.0 52 [74, 0] NS 505->511 507 0.0 80 [141, 0] NS 506->507 508 IndAvgSalary <= 0.3251 0.1298 27 [40, 3] NS 506->508 509 0.0 14 [25, 0] NS 508->509 510 0.2778 13 [15, 3] NS 508->510 515 SEPCount_EFDATE_LOCLog <= 0.4009 0.4056 209 [241, 95] NS 514->515 520 SALARYLog <= 0.2916 0.2116 422 [578, 79] NS 514->520 516 SEPCount_EFDATE_OCCLog <= 0.6132 0.4875 23 [22, 16] NS 515->516 519 0.3896 186 [219, 79] NS 515->519 517 0.2778 12 [15, 3] NS 516->517 518 0.455 11 [7, 13] SD 516->518 521 SEPCount_EFDATE_LOCLog <= 0.5383 0.4781 23 [26, 17] NS 520->521 524 BLS_FEDERAL_Layoffs_Level <= 0.2391 0.1816 399 [552, 62] NS 520->524 522 0.4567 10 [6, 11] SD 521->522 523 0.355 13 [20, 6] NS 521->523 525 LOSSqrt <= 0.3538 0.1647 322 [442, 44] NS 524->525 558 BLS_FEDERAL_Layoffs_Level <= 0.6304 0.2417 77 [110, 18] NS 524->558 526 BLS_FEDERAL_JobOpenings_Rate <= 0.625 0.4888 28 [17, 23] SD 525->526 529 IndAvgSalary <= 0.2357 0.0897 294 [425, 21] NS 525->529 527 0.4654 14 [7, 12] SD 526->527 528 0.4989 14 [10, 11] SD 526->528 530 BLS_FEDERAL_OtherSep_Level <= 0.2778 0.1913 59 [75, 9] NS 529->530 539 IndAvgSalary <= 0.48 0.0641 235 [350, 12] NS 529->539 531 0.095 17 [19, 1] NS 530->531 532 BLS_FEDERAL_JobOpenings_Rate <= 0.2083 0.2188 42 [56, 8] NS 530->532 533 0.3324 10 [15, 4] NS 532->533 534 SALARYLog <= 0.3813 0.162 32 [41, 4] NS 532->534 535 LOSSqrt <= 0.6071 0.2604 19 [22, 4] NS 534->535 538 0.0 13 [19, 0] NS 534->538 536 0.48 9 [6, 4] NS 535->536 537 0.0 10 [16, 0] NS 535->537 540 BLS_FEDERAL_JobOpenings_Level <= 0.7361 0.0391 196 [295, 6] NS 539->540 553 SALARYLog <= 0.6573 0.1774 39 [55, 6] NS 539->553 541 BLS_FEDERAL_Layoffs_Rate <= 0.0625 0.0096 133 [206, 1] NS 540->541 548 IndAvgSalary <= 0.3321 0.1007 63 [89, 5] NS 540->548 542 IndAvgSalary <= 0.3292 0.0312 43 [62, 1] NS 541->542 547 0.0 90 [144, 0] NS 541->547 543 LOSSqrt <= 0.6156 0.0713 22 [26, 1] NS 542->543 546 0.0 21 [36, 0] NS 542->546 544 0.1653 9 [10, 1] NS 543->544 545 0.0 13 [16, 0] NS 543->545 549 0.0 33 [45, 0] NS 548->549 550 BLS_FEDERAL_Layoffs_Level <= 0.1957 0.1833 30 [44, 5] NS 548->550 551 0.3878 12 [14, 5] NS 550->551 552 0.0 18 [30, 0] NS 550->552 554 IndAvgSalaryLog <= 0.6841 0.1139 20 [31, 2] NS 553->554 557 0.2449 19 [24, 4] NS 553->557 555 0.2778 9 [10, 2] NS 554->555 556 0.0 11 [21, 0] NS 554->556 559 IndAvgSalary <= 0.348 0.3336 29 [41, 11] NS 558->559 562 SEPCount_EFDATE_LOCLog <= 0.5391 0.1672 48 [69, 7] NS 558->562 560 0.426 16 [18, 8] NS 559->560 561 0.2041 13 [23, 3] NS 559->561 563 0.3911 9 [11, 4] NS 562->563 564 IndAvgSalaryLog <= 0.4269 0.0935 39 [58, 3] NS 562->564 565 0.1528 15 [22, 2] NS 564->565 566 SalaryOverUnderIndAvg <= 0.5149 0.0526 24 [36, 1] NS 564->566 567 0.0 15 [23, 0] NS 566->567 568 0.1327 9 [13, 1] NS 566->568 570 SalaryOverUnderIndAvg <= 0.4922 0.1954 53 [73, 9] NS 569->570 577 SEPCount_EFDATE_LOCLog <= 0.4164 0.4998 73 [53, 51] NS 569->577 571 LOSSqrt <= 0.463 0.3343 20 [26, 7] NS 570->571 574 BLS_FEDERAL_Quits_Level <= 0.375 0.0783 33 [47, 2] NS 570->574 572 0.4922 9 [9, 7] NS 571->572 573 0.0 11 [17, 0] NS 571->573 575 0.0 20 [31, 0] NS 574->575 576 0.1975 13 [16, 2] NS 574->576 578 0.3324 11 [4, 15] SD 577->578 579 BLS_FEDERAL_TotalSep_Rate <= 0.125 0.4883 62 [49, 36] NS 577->579 580 LOSSqrt <= 0.3922 0.4178 30 [26, 11] NS 579->580 583 BLS_FEDERAL_JobOpenings_Rate <= 0.375 0.4991 32 [23, 25] SD 579->583 581 0.4082 14 [4, 10] SD 580->581 582 0.0832 16 [22, 1] NS 580->582 584 0.5 18 [13, 13] NS 583->584 585 0.4959 14 [10, 12] SD 583->585 588 IndAvgSalaryLog <= 0.4462 0.4903 706 [475, 629] SD 587->588 685 IndAvgSalaryLog <= 0.4106 0.3341 173 [60, 223] SD 587->685 589 AGELVL_I <= 0.5 0.3811 324 [125, 363] SD 588->589 636 LowerLimitAge <= 0.5 0.4907 382 [350, 266] NS 588->636 590 BLS_FEDERAL_TotalSep_Level <= 0.1912 0.3558 292 [103, 342] SD 589->590 631 LOSSqrt <= 0.4112 0.4997 32 [22, 21] NS 589->631 591 AGELVL_K <= 0.5 0.4821 71 [45, 66] SD 590->591 604 AGELVL_K <= 0.5 0.287 221 [58, 276] SD 590->604 592 SalaryOverUnderIndAvg <= 0.5179 0.47 62 [37, 61] SD 591->592 603 0.4734 9 [8, 5] NS 591->603 593 AGELVL_F <= 0.5 0.4908 52 [35, 46] SD 592->593 602 0.2076 10 [2, 15] SD 592->602 594 IndAvgSalary <= 0.158 0.4938 43 [28, 35] SD 593->594 601 0.4753 9 [7, 11] SD 593->601 595 AGELVL_C <= 0.5 0.2934 19 [5, 23] SD 594->595 598 AGELVL_E <= 0.5 0.4506 24 [23, 12] NS 594->598 596 0.2449 9 [2, 12] SD 595->596 597 0.3367 10 [3, 11] SD 595->597 599 0.375 15 [15, 5] NS 598->599 600 0.4978 9 [8, 7] NS 598->600 605 AGELVL_F <= 0.5 0.2384 208 [44, 274] SD 604->605 630 0.2188 13 [14, 2] NS 604->630 606 LOSSqrt <= 0.238 0.248 174 [38, 224] SD 605->606 625 BLS_FEDERAL_OtherSep_Rate <= 0.8333 0.1913 34 [6, 50] SD 605->625 607 IndAvgSalary <= 0.1527 0.0857 101 [7, 149] SD 606->607 614 BLS_FEDERAL_Layoffs_Level <= 0.1739 0.4138 73 [31, 75] SD 606->614 608 TOATYP_2 <= 0.5 0.1672 48 [7, 69] SD 607->608 613 0.0 53 [0, 80] SD 607->613 609 SALARYLog <= 0.1837 0.1866 33 [5, 43] SD 608->609 612 0.1327 15 [2, 26] SD 608->612 610 0.1244 20 [2, 28] SD 609->610 611 0.2778 13 [3, 15] SD 609->611 615 0.0768 16 [1, 24] SD 614->615 616 SEPCount_EFDATE_OCCLog <= 0.735 0.4664 57 [30, 51] SD 614->616 617 LowerLimitAge <= 0.4444 0.375 31 [11, 33] SD 616->617 622 BLS_FEDERAL_JobOpenings_Rate <= 0.5833 0.4996 26 [19, 18] NS 616->622 618 BLS_FEDERAL_JobOpenings_Rate <= 0.5833 0.2604 19 [4, 22] SD 617->618 621 0.4753 12 [7, 11] SD 617->621 619 0.2311 10 [2, 13] SD 618->619 620 0.2975 9 [2, 9] SD 618->620 623 0.4989 13 [10, 11] SD 622->623 624 0.4922 13 [9, 7] NS 622->624 626 TOA_10 <= 0.5 0.1172 20 [2, 30] SD 625->626 629 0.2778 14 [4, 20] SD 625->629 627 0.0 10 [0, 17] SD 626->627 628 0.2311 10 [2, 13] SD 626->628 632 IndAvgSalary <= 0.1804 0.2268 18 [3, 20] SD 631->632 635 0.095 14 [19, 1] NS 631->635 633 0.2975 9 [2, 9] SD 632->633 634 0.1528 9 [1, 11] SD 632->634 637 IndAvgSalary <= 0.3448 0.3126 131 [38, 158] SD 636->637 654 AGELVL_H <= 0.5 0.382 251 [312, 108] NS 636->654 638 GSEGRD <= 0.6875 0.426 50 [20, 45] SD 637->638 643 AGELVL_F <= 0.5 0.237 81 [18, 113] SD 637->643 639 0.1855 23 [3, 26] SD 638->639 640 LOSSqrt <= 0.2509 0.4985 27 [17, 19] SD 638->640 641 0.4592 10 [5, 9] SD 640->641 642 0.4959 17 [12, 10] NS 640->642 644 IndAvgSalary <= 0.4632 0.1884 56 [10, 85] SD 643->644 651 LOC_11 <= 0.5 0.3457 25 [8, 28] SD 643->651 645 BLS_FEDERAL_OtherSep_Rate <= 0.5 0.1014 30 [3, 53] SD 644->645 648 BLS_FEDERAL_OtherSep_Level <= 0.8889 0.2945 26 [7, 32] SD 644->648 646 0.1172 10 [1, 15] SD 645->646 647 0.095 20 [2, 38] SD 645->647 649 0.375 14 [5, 15] SD 648->649 650 0.1884 12 [2, 17] SD 648->650 652 0.2778 14 [3, 15] SD 651->652 653 0.4012 11 [5, 13] SD 651->653 655 LOC_24 <= 0.5 0.3244 201 [262, 67] NS 654->655 678 GSEGRD <= 0.8125 0.4951 50 [50, 41] NS 654->678 656 AGELVL_G <= 0.5 0.305 179 [238, 55] NS 655->656 675 IndAvgSalaryLog <= 0.6739 0.4444 22 [24, 12] NS 655->675 657 IndAvgSalary <= 0.6075 0.2474 147 [207, 35] NS 656->657 670 BLS_FEDERAL_OtherSep_Level <= 0.6111 0.4767 32 [31, 20] NS 656->670 658 SEPCount_EFDATE_OCCLog <= 0.6277 0.1639 130 [192, 19] NS 657->658 669 0.4995 17 [15, 16] SD 657->669 659 0.0 46 [77, 0] NS 658->659 660 TOA_10 <= 0.5 0.2434 84 [115, 19] NS 658->660 661 0.375 20 [24, 8] NS 660->661 662 BLS_FEDERAL_JobOpenings_Level <= 0.6111 0.1924 64 [91, 11] NS 660->662 663 BLS_FEDERAL_JobOpenings_Rate <= 0.3333 0.0973 50 [74, 4] NS 662->663 668 0.4132 14 [17, 7] NS 662->668 664 0.18 14 [18, 2] NS 663->664 665 SalaryOverUnderIndAvg <= 0.5014 0.0666 36 [56, 2] NS 663->665 666 0.1723 12 [19, 2] NS 665->666 667 0.0 24 [37, 0] NS 665->667 671 0.4012 10 [13, 5] NS 670->671 672 SEPCount_EFDATE_OCCLog <= 0.8408 0.4959 22 [18, 15] NS 670->672 673 0.4152 10 [5, 12] SD 672->673 674 0.3047 12 [13, 3] NS 672->674 676 0.1975 11 [16, 2] NS 675->676 677 0.4938 11 [8, 10] SD 675->677 679 IndAvgSalaryLog <= 0.5467 0.5 24 [24, 24] NS 678->679 682 BLS_FEDERAL_Layoffs_Level <= 0.1739 0.4781 26 [26, 17] NS 678->682 680 0.48 14 [15, 10] NS 679->680 681 0.4764 10 [9, 14] SD 679->681 683 0.1884 10 [17, 2] NS 682->683 684 0.4688 16 [9, 15] SD 682->684 686 BLS_FEDERAL_OtherSep_Rate <= 0.5 0.2048 60 [11, 84] SD 685->686 693 IndAvgSalary <= 0.2419 0.3854 113 [49, 139] SD 685->693 687 0.0713 18 [1, 26] SD 686->687 688 SalaryOverUnderIndAvg <= 0.4882 0.2509 42 [10, 58] SD 686->688 689 BLS_FEDERAL_OtherSep_Level <= 0.8889 0.335 27 [10, 37] SD 688->689 692 0.0 15 [0, 21] SD 688->692 690 0.48 14 [8, 12] SD 689->690 691 0.1372 13 [2, 25] SD 689->691 694 0.4993 16 [13, 14] SD 693->694 695 SEPCount_EFDATE_OCCLog <= 0.8767 0.3472 97 [36, 125] SD 693->695 696 BLS_FEDERAL_Quits_Rate <= 0.75 0.2896 88 [26, 122] SD 695->696 711 0.355 9 [10, 3] NS 695->711 697 0.3299 15 [5, 19] SD 696->697 698 TOA_10 <= 0.5 0.2813 73 [21, 103] SD 696->698 699 GSEGRD <= 0.8125 0.2122 31 [7, 51] SD 698->699 704 BLS_FEDERAL_JobOpenings_Level <= 0.6111 0.3343 42 [14, 52] SD 698->704 700 0.0666 13 [1, 28] SD 699->700 701 SalaryOverUnderIndAvg <= 0.4335 0.3282 18 [6, 23] SD 699->701 702 0.4082 9 [4, 10] SD 701->702 703 0.2311 9 [2, 13] SD 701->703 705 BLS_FEDERAL_Layoffs_Rate <= 0.5625 0.335 30 [10, 37] SD 704->705 710 0.3324 12 [4, 15] SD 704->710 706 0.3967 9 [3, 8] SD 705->706 707 LOC_11 <= 0.5 0.3133 21 [7, 29] SD 705->707 708 0.375 11 [5, 15] SD 707->708 709 0.2188 10 [2, 14] SD 707->709 713 TOA_10 <= 0.5 0.264 657 [884, 164] NS 712->713 760 LOC_11 <= 0.5 0.1228 134 [199, 14] NS 712->760 714 TOA_38 <= 0.5 0.4676 163 [165, 98] NS 713->714 729 BLS_FEDERAL_JobOpenings_Level <= 0.1389 0.154 494 [719, 66] NS 713->729 715 BLS_FEDERAL_Quits_Level <= 0.125 0.4943 99 [93, 75] NS 714->715 728 0.367 64 [72, 23] NS 714->728 716 0.3367 11 [3, 11] SD 715->716 717 GSEGRD <= 0.6875 0.4857 88 [90, 64] NS 715->717 718 SALARYLog <= 0.2353 0.3789 38 [16, 47] SD 717->718 721 SALARYLog <= 0.5551 0.3038 50 [74, 17] NS 717->721 719 0.0 10 [0, 18] SD 718->719 720 0.4583 28 [16, 29] SD 718->720 722 0.4922 9 [9, 7] NS 721->722 723 IndAvgSalary <= 0.6182 0.2311 41 [65, 10] NS 721->723 724 LOSSqrt <= 0.5751 0.0921 32 [59, 3] NS 723->724 727 0.497 9 [6, 7] SD 723->727 725 0.2778 9 [15, 3] NS 724->725 726 0.0 23 [44, 0] NS 724->726 730 SEPCount_EFDATE_OCCLog <= 0.8841 0.2919 77 [102, 22] NS 729->730 741 BLS_FEDERAL_TotalSep_Level <= 0.3088 0.1243 417 [617, 44] NS 729->741 731 IndAvgSalary <= 0.2276 0.1975 63 [88, 11] NS 730->731 740 0.4928 14 [14, 11] NS 730->740 732 0.4567 10 [11, 6] NS 731->732 733 BLS_FEDERAL_JobOpenings_Rate <= 0.0417 0.1145 53 [77, 5] NS 731->733 734 SEPCount_EFDATE_LOCLog <= 0.6633 0.0928 27 [39, 2] NS 733->734 737 LOSSqrt <= 0.5464 0.1356 26 [38, 3] NS 733->737 735 0.0 16 [25, 0] NS 734->735 736 0.2188 11 [14, 2] NS 734->736 738 0.3047 9 [13, 3] NS 737->738 739 0.0 17 [25, 0] NS 737->739 742 BLS_FEDERAL_JobOpenings_Level <= 0.9306 0.1001 344 [520, 29] NS 741->742 755 SALARYLog <= 0.4349 0.232 73 [97, 15] NS 741->755 743 LOC_11 <= 0.5 0.097 305 [464, 25] NS 742->743 754 0.1244 39 [56, 4] NS 742->754 744 SalaryOverUnderIndAvg <= 0.4696 0.1034 284 [432, 25] NS 743->744 753 0.0 21 [32, 0] NS 743->753 745 0.2822 60 [83, 17] NS 744->745 746 GSEGRD <= 0.3125 0.0438 224 [349, 8] NS 744->746 747 0.2268 17 [20, 3] NS 746->747 748 BLS_FEDERAL_Layoffs_Level <= 0.0652 0.0295 207 [329, 5] NS 746->748 749 0.0 79 [122, 0] NS 748->749 750 IndAvgSalary <= 0.5136 0.0461 128 [207, 5] NS 748->750 751 0.0104 115 [190, 1] NS 750->751 752 0.3084 13 [17, 4] NS 750->752 756 0.375 36 [39, 13] NS 755->756 757 IndAvgSalary <= 0.3667 0.0644 37 [58, 2] NS 755->757 758 0.0 22 [36, 0] NS 757->758 759 0.1528 15 [22, 2] NS 757->759 761 GSEGRD <= 0.5625 0.1333 121 [181, 14] NS 760->761 774 0.0 13 [18, 0] NS 760->774 762 SEPCount_EFDATE_OCCLog <= 0.6526 0.2449 22 [30, 5] NS 761->762 765 SALARYLog <= 0.4213 0.1062 99 [151, 9] NS 761->765 763 0.1049 11 [17, 1] NS 762->763 764 0.3599 11 [13, 4] NS 762->764 766 0.2637 21 [27, 5] NS 765->766 767 IndAvgSalaryLog <= 0.7645 0.0605 78 [124, 4] NS 765->767 768 IndAvgSalary <= 0.3929 0.0342 69 [113, 2] NS 767->768 773 0.2604 9 [11, 2] NS 767->773 769 0.0 43 [73, 0] NS 768->769 770 LOSSqrt <= 0.7352 0.0907 26 [40, 2] NS 768->770 771 0.0666 17 [28, 1] NS 770->771 772 0.142 9 [12, 1] NS 770->772

Build a Binary KNN Model

KNN

Algorithm

Options include "Ball Tree" and "KD Tree".

  • Ball Trees are binary trees formed from nodes of multidimensional hyperspheres, or "balls". Node hyperspheres may intersect, but each point is assigned to one according to distance from the hypersphere center.
  • KD Trees are binary trees formed from nodes of multidimensional hyperplanes. Every node in the tree is associated with one of the dimensions, with the hyperplane perpendicular to that dimension's axis.

Our findings, were that the Ball Tree algorithm was considerably less efficient to produce results for all 10 iterations in comparison to the KD Tree Algorithm.

Leaf Size

The size for leaf nodes in the KNN Tree.

Number of Neighbors

After 24 iterations of modifying the above parameters, we land on a final winner based on the highest average Accuracy value across all iterations. Average Accuracy values in our 10 test/train iterations ranged from 66.5216 % from the worst parameter inputs of the Ball_Tree Algorith to a value of 69.5528 % in best tuned KNN Classification model fit. We have chosen to utilize the best input for KD tree, although losing an improvement of .0004 % due to the cost(slower runtime of 07 Minutes 25 Seconds through 10 iterations) of fitting the model as Ball Tree. Parameter inputs for the final K Nearest Neighbor Classification model with the KD Tree Algorithm are as follows:

algorithm leaf_size n_neighbors
kd_tree 50 150
In [122]:
%%time


def knn_explorBinary_w_PCA(n_neighbors,
               algorithm ,
               leaf_size,
               PCA,
               Data        = OPMAnalysisDataNoFamBinary,
               cv          = cv,
               seed        = seed):
    startTime = datetime.now()
    y = Data["SEP"].values # get the labels we want    
    
    X = Data.drop("SEP", axis=1).as_matrix() 
    
    knn_clf = KNeighborsClassifier(n_neighbors = n_neighbors, algorithm = algorithm, leaf_size = leaf_size, n_jobs=-1) # get object
    
    # setup pipeline to take PCA, then fit a clf model
    clf_pipe = Pipeline(
        [('minMaxScaler', MinMaxScaler()),
         ('PCA', PCA),
         ('CLF',knn_clf)]
    )

    accuracy = cross_val_score(clf_pipe, X, y, cv=cv.split(X, y)) # this also can help with parallelism
    MeanAccuracy =  sum(accuracy)/len(accuracy)
    accuracy = np.append(accuracy, MeanAccuracy)
    endTime = datetime.now()
    TotalTime = endTime - startTime
    accuracy = np.append(accuracy, TotalTime)
    
    #print(TotalTime)
    #print(accuracy)
    
    return accuracy
CPU times: user 6 µs, sys: 0 ns, total: 6 µs
Wall time: 9.78 µs
In [123]:
%%time

def knn_explorBinary(n_neighbors,
               algorithm ,
               leaf_size,
               Data        = OPMAnalysisDataNoFamBinary,
               cols        = PCList,
               cv          = cv,
               seed        = seed):
    startTime = datetime.now()
    y = Data["SEP"].values # get the labels we want    
    
    if ("SEP" in cols):    X = Data[cols].drop("SEP", axis=1).as_matrix() 
    else: X = Data[cols]
    
    knn_clf = KNeighborsClassifier(n_neighbors = n_neighbors, algorithm = algorithm, leaf_size = leaf_size, n_jobs=-1) # get object
    
    # setup pipeline to take PCA, then fit a clf model
    clf_pipe = Pipeline(
        [('minMaxScaler', MinMaxScaler()),
         ('CLF',knn_clf)]
    )

    accuracy = cross_val_score(clf_pipe, X, y, cv=cv.split(X, y)) # this also can help with parallelism
    MeanAccuracy =  sum(accuracy)/len(accuracy)
    accuracy = np.append(accuracy, MeanAccuracy)
    endTime = datetime.now()
    TotalTime = endTime - startTime
    accuracy = np.append(accuracy, TotalTime)
    
    #print(TotalTime)
    #print(accuracy)
    
    return accuracy
CPU times: user 4 µs, sys: 2 µs, total: 6 µs
Wall time: 10.3 µs
In [124]:
%%time
###Full Columns
acclist = [] 

n_neighbors =  [5          , 10         , 15         , 20         , 30         , 40         , 50         , 100        , 150        , 200        , 250        , 200        , 200        , 200        , 200        , 200        , 200        ]
algorithm   =  'kd_tree'
leaf_size   =  [30         , 30         , 30         , 30         , 30         , 30         , 30         , 30         , 30         , 30         , 30         , 5          , 10         , 20         , 50         , 100        , 300        ]



for i in range(0,len(n_neighbors)):
    acclist.append(knn_explorBinary(n_neighbors = n_neighbors[i],
                              algorithm   = algorithm,
                              leaf_size   = leaf_size[i],
                              cols = fullColumns
                             )
                  )

rfcdf = pd.DataFrame(pd.concat([pd.DataFrame({
                                                "ModelVersion": "Full Raw Columns",
                                                "n_neighbors": n_neighbors,          
                                                "algorithm": algorithm,         
                                                "leaf_size": leaf_size  
                                              }),
                               pd.DataFrame(acclist)], axis = 1).reindex())
rfcdf.columns = ['ModelVersion','algorithm', 'leaf_size','n_neighbors', 'Iteration 0', 'Iteration 1', 'Iteration 2', 'Iteration 3', 'Iteration 4', 'MeanAccuracy', 'RunTime']
display(rfcdf)




acclist = [] 

n_neighbors =  [5          , 10         , 15         , 20         , 30         , 40         , 50         , 100        , 150        , 200        , 250        , 200        , 200        , 200        , 200        , 200        , 200        ]
algorithm   =  'ball_tree'
leaf_size   =  [30         , 30         , 30         , 30         , 30         , 30         , 30         , 30         , 30         , 30         , 30         , 5          , 10         , 20         , 50         , 100        , 300        ]

for i in range(0,len(n_neighbors)):
    acclist.append(knn_explorBinary(n_neighbors = n_neighbors[i],
                              algorithm   = algorithm,
                              leaf_size   = leaf_size[i],
                              cols = fullColumns
                             )
                  )

rfcdf = pd.DataFrame(pd.concat([pd.DataFrame({
                                                "ModelVersion": "Full Raw Columns",
                                                "n_neighbors": n_neighbors,          
                                                "algorithm": algorithm,         
                                                "leaf_size": leaf_size  
                                              }),
                               pd.DataFrame(acclist)], axis = 1).reindex())
rfcdf.columns = ['ModelVersion','algorithm', 'leaf_size','n_neighbors', 'Iteration 0', 'Iteration 1', 'Iteration 2', 'Iteration 3', 'Iteration 4', 'MeanAccuracy', 'RunTime']
display(rfcdf)

###Reduced Columns

acclist = [] 

n_neighbors =  [5          , 10         , 15         , 20         , 30         , 40         , 50         , 100        , 150        , 200        , 250        , 300        , 350        , 400        , 150        , 150        , 150        , 150        , 150        , 150        ]
algorithm   =  'kd_tree'
leaf_size   =  [30         , 30         , 30         , 30         , 30         , 30         , 30         , 30         , 30         , 30         , 30         , 30         , 30         , 30         , 5          , 10         , 20         , 50         , 100        , 150        ]



for i in range(0,len(n_neighbors)):
    acclist.append(knn_explorBinary(n_neighbors = n_neighbors[i],
                              algorithm   = algorithm,
                              leaf_size   = leaf_size[i]
                             )
                  )

rfcdf = pd.DataFrame(pd.concat([pd.DataFrame({
                                                "ModelVersion": "Reduced Raw Columns",
                                                "n_neighbors": n_neighbors,          
                                                "algorithm": algorithm,         
                                                "leaf_size": leaf_size  
                                              }),
                               pd.DataFrame(acclist)], axis = 1).reindex())
rfcdf.columns = ['ModelVersion','algorithm', 'leaf_size','n_neighbors', 'Iteration 0', 'Iteration 1', 'Iteration 2', 'Iteration 3', 'Iteration 4', 'MeanAccuracy', 'RunTime']
display(rfcdf)




acclist = [] 

n_neighbors =  [5          , 10         , 15         , 20         , 30         , 40         , 50         , 100        , 150        , 200        , 250        , 300        , 350        , 400        , 150        , 150        , 150        , 150        , 150        , 150        ]
algorithm   =  'ball_tree'
leaf_size   =  [30         , 30         , 30         , 30         , 30         , 30         , 30         , 30         , 30         , 30         , 30         , 30         , 30         , 30         , 5          , 10         , 20         , 50         , 100        , 150        ]

for i in range(0,len(n_neighbors)):
    acclist.append(knn_explorBinary(n_neighbors = n_neighbors[i],
                              algorithm   = algorithm,
                              leaf_size   = leaf_size[i]
                             )
                  )

rfcdf = pd.DataFrame(pd.concat([pd.DataFrame({
                                                "ModelVersion": "Reduced Raw Columns",
                                                "n_neighbors": n_neighbors,          
                                                "algorithm": algorithm,         
                                                "leaf_size": leaf_size  
                                              }),
                               pd.DataFrame(acclist)], axis = 1).reindex())
rfcdf.columns = ['ModelVersion','algorithm', 'leaf_size','n_neighbors', 'Iteration 0', 'Iteration 1', 'Iteration 2', 'Iteration 3', 'Iteration 4', 'MeanAccuracy', 'RunTime']
display(rfcdf)



#### WITH PCA

acclist = [] 

n_neighbors =  [5          , 10         , 15         , 20         , 30         , 40         , 50         , 100        , 150        , 200        , 250        , 150        , 150        , 150        , 150        , 150        , 150        , 150     ]
algorithm   =  ['kd_tree'  ,'kd_tree'   ,'kd_tree'   ,'kd_tree'   ,'kd_tree'   ,'kd_tree'   ,'kd_tree'   ,'kd_tree'   ,'kd_tree'   ,'kd_tree'   ,'kd_tree'   ,'kd_tree'   ,'kd_tree'   ,'kd_tree'   ,'kd_tree'   ,'kd_tree'   ,'kd_tree'   ,'kd_tree']
leaf_size   =  [30         , 30         , 30         , 30         , 30         , 30         , 30         , 30         , 30         , 30         , 30         , 5          , 10         , 20         , 50         , 100        , 150        , 300     ]



for i in range(0,len(n_neighbors)):
    acclist.append(knn_explorBinary_w_PCA(n_neighbors = n_neighbors[i],
                              algorithm   = algorithm[i],
                              leaf_size   = leaf_size[i],
                              PCA = PCA(n_components=22, svd_solver='randomized', random_state = seed)
                             )
                  )

rfcdf = pd.DataFrame(pd.concat([pd.DataFrame({
                                                "ModelVersion": "With PCA",
                                                "n_neighbors": n_neighbors,          
                                                "algorithm": algorithm,         
                                                "leaf_size": leaf_size  
                                              }),
                               pd.DataFrame(acclist)], axis = 1).reindex())
rfcdf.columns = ['ModelVersion','algorithm', 'leaf_size','n_neighbors', 'Iteration 0', 'Iteration 1', 'Iteration 2', 'Iteration 3', 'Iteration 4', 'MeanAccuracy', 'RunTime']
display(rfcdf)




acclist = [] 

n_neighbors =  [5          , 10         , 15         , 20         , 30         , 40         , 50         , 100        , 150        , 200        , 250        , 150        , 150        , 150        , 150        , 150        , 150        , 150        ]
algorithm   =  ['ball_tree','ball_tree' ,'ball_tree' ,'ball_tree' ,'ball_tree' ,'ball_tree' ,'ball_tree' ,'ball_tree' ,'ball_tree' ,'ball_tree' ,'ball_tree' ,'ball_tree' ,'ball_tree' ,'ball_tree' ,'ball_tree' ,'ball_tree' ,'ball_tree' ,'ball_tree' ]
leaf_size   =  [30         , 30         , 30         , 30         , 30         , 30         , 30         , 30         , 30         , 30         , 30         , 5          , 10         , 20         , 50         , 100        , 150        , 300        ]

for i in range(0,len(n_neighbors)):
    acclist.append(knn_explorBinary_w_PCA(n_neighbors = n_neighbors[i],
                              algorithm   = algorithm[i],
                              leaf_size   = leaf_size[i],
                              PCA = PCA(n_components=22, svd_solver='randomized', random_state = seed)
                             )
                  )

rfcdf = pd.DataFrame(pd.concat([pd.DataFrame({
                                                "ModelVersion": "With PCA",
                                                "n_neighbors": n_neighbors,          
                                                "algorithm": algorithm,         
                                                "leaf_size": leaf_size  
                                              }),
                               pd.DataFrame(acclist)], axis = 1).reindex())
rfcdf.columns = ['ModelVersion','algorithm', 'leaf_size','n_neighbors', 'Iteration 0', 'Iteration 1', 'Iteration 2', 'Iteration 3', 'Iteration 4', 'MeanAccuracy', 'RunTime']
display(rfcdf)
ModelVersion algorithm leaf_size n_neighbors Iteration 0 Iteration 1 Iteration 2 Iteration 3 Iteration 4 MeanAccuracy RunTime
0 Full Raw Columns kd_tree 30 5 0.643216 0.754439 0.658512 0.704325 0.681864 0.688471 00:00:08.196537
1 Full Raw Columns kd_tree 30 10 0.661977 0.749079 0.673257 0.715052 0.694938 0.698861 00:00:07.960424
2 Full Raw Columns kd_tree 30 15 0.672027 0.771859 0.698391 0.729132 0.712035 0.716689 00:00:09.947923
3 Full Raw Columns kd_tree 30 20 0.664992 0.766834 0.693365 0.731143 0.707677 0.712802 00:00:10.565602
4 Full Raw Columns kd_tree 30 30 0.658961 0.764489 0.697721 0.738183 0.710694 0.714010 00:00:13.541784
5 Full Raw Columns kd_tree 30 40 0.672027 0.762144 0.698056 0.739189 0.717734 0.717830 00:00:12.350223
6 Full Raw Columns kd_tree 30 50 0.684087 0.768509 0.693365 0.734495 0.718404 0.719772 00:00:10.449349
7 Full Raw Columns kd_tree 30 100 0.699162 0.761474 0.699397 0.743212 0.725444 0.725738 00:00:14.369542
8 Full Raw Columns kd_tree 30 150 0.695477 0.762814 0.706099 0.741871 0.725779 0.726408 00:00:16.032523
9 Full Raw Columns kd_tree 30 200 0.693467 0.757789 0.711126 0.737513 0.726450 0.725269 00:00:10.615698
10 Full Raw Columns kd_tree 30 250 0.693802 0.750754 0.710121 0.733825 0.717734 0.721247 00:00:10.996464
11 Full Raw Columns kd_tree 5 200 0.693467 0.757789 0.711126 0.737513 0.726450 0.725269 00:00:15.727945
12 Full Raw Columns kd_tree 10 200 0.693467 0.757789 0.711126 0.737513 0.726450 0.725269 00:00:16.566935
13 Full Raw Columns kd_tree 20 200 0.693467 0.757789 0.711126 0.737513 0.726450 0.725269 00:00:15.224156
14 Full Raw Columns kd_tree 50 200 0.693467 0.757789 0.711126 0.737513 0.726450 0.725269 00:00:13.933795
15 Full Raw Columns kd_tree 100 200 0.693467 0.757789 0.711126 0.737513 0.726450 0.725269 00:00:13.002137
16 Full Raw Columns kd_tree 300 200 0.693467 0.757789 0.711126 0.737513 0.726450 0.725269 00:00:12.229826
ModelVersion algorithm leaf_size n_neighbors Iteration 0 Iteration 1 Iteration 2 Iteration 3 Iteration 4 MeanAccuracy RunTime
0 Full Raw Columns ball_tree 30 5 0.643551 0.754439 0.658512 0.704325 0.681864 0.688538 00:00:12.493879
1 Full Raw Columns ball_tree 30 10 0.661977 0.749079 0.673257 0.715052 0.694938 0.698861 00:00:12.568310
2 Full Raw Columns ball_tree 30 15 0.672027 0.771859 0.698391 0.729132 0.712035 0.716689 00:00:12.450590
3 Full Raw Columns ball_tree 30 20 0.664992 0.766834 0.693365 0.731143 0.707677 0.712802 00:00:13.426719
4 Full Raw Columns ball_tree 30 30 0.658961 0.764489 0.697721 0.738183 0.710694 0.714010 00:00:12.687196
5 Full Raw Columns ball_tree 30 40 0.672027 0.762144 0.698056 0.739189 0.717734 0.717830 00:00:12.345315
6 Full Raw Columns ball_tree 30 50 0.684087 0.768509 0.693365 0.734495 0.718404 0.719772 00:00:12.278310
7 Full Raw Columns ball_tree 30 100 0.699162 0.761474 0.699397 0.743212 0.725444 0.725738 00:00:13.505236
8 Full Raw Columns ball_tree 30 150 0.695477 0.762814 0.706099 0.741871 0.725779 0.726408 00:00:12.685901
9 Full Raw Columns ball_tree 30 200 0.693467 0.757789 0.711126 0.737513 0.726450 0.725269 00:00:13.232688
10 Full Raw Columns ball_tree 30 250 0.693802 0.750754 0.710121 0.733825 0.717734 0.721247 00:00:13.214619
11 Full Raw Columns ball_tree 5 200 0.693467 0.757789 0.711126 0.737513 0.726450 0.725269 00:00:19.252592
12 Full Raw Columns ball_tree 10 200 0.693467 0.757789 0.711126 0.737513 0.726450 0.725269 00:00:15.657364
13 Full Raw Columns ball_tree 20 200 0.693467 0.757789 0.711126 0.737513 0.726450 0.725269 00:00:14.300459
14 Full Raw Columns ball_tree 50 200 0.693467 0.757789 0.711126 0.737513 0.726450 0.725269 00:00:12.328006
15 Full Raw Columns ball_tree 100 200 0.693467 0.757789 0.711126 0.737513 0.726450 0.725269 00:00:12.547164
16 Full Raw Columns ball_tree 300 200 0.693467 0.757789 0.711126 0.737513 0.726450 0.725269 00:00:11.123484
ModelVersion algorithm leaf_size n_neighbors Iteration 0 Iteration 1 Iteration 2 Iteration 3 Iteration 4 MeanAccuracy RunTime
0 Reduced Raw Columns kd_tree 30 5 0.608040 0.757789 0.656166 0.710023 0.686222 0.683648 00:00:04.271165
1 Reduced Raw Columns kd_tree 30 10 0.628141 0.735343 0.660188 0.723098 0.700302 0.689414 00:00:05.128541
2 Reduced Raw Columns kd_tree 30 15 0.661977 0.773869 0.669906 0.738518 0.714717 0.711797 00:00:05.570017
3 Reduced Raw Columns kd_tree 30 20 0.661307 0.769179 0.682306 0.733490 0.709353 0.711127 00:00:06.032585
4 Reduced Raw Columns kd_tree 30 30 0.684087 0.762814 0.690684 0.735166 0.713711 0.717292 00:00:06.740258
5 Reduced Raw Columns kd_tree 30 40 0.684757 0.764824 0.693365 0.733490 0.722762 0.719840 00:00:07.293171
6 Reduced Raw Columns kd_tree 30 50 0.692462 0.767504 0.702413 0.732149 0.717399 0.722385 00:00:07.298613
7 Reduced Raw Columns kd_tree 30 100 0.690117 0.761474 0.701408 0.732819 0.718404 0.720844 00:00:09.637977
8 Reduced Raw Columns kd_tree 30 150 0.694807 0.756449 0.701408 0.730473 0.714381 0.719504 00:00:09.962233
9 Reduced Raw Columns kd_tree 30 200 0.703853 0.746064 0.707105 0.726785 0.717734 0.720308 00:00:10.625987
10 Reduced Raw Columns kd_tree 30 250 0.702848 0.744054 0.706769 0.729802 0.714381 0.719571 00:00:10.566106
11 Reduced Raw Columns kd_tree 30 300 0.705528 0.743719 0.707775 0.728797 0.712370 0.719638 00:00:12.666621
12 Reduced Raw Columns kd_tree 30 350 0.704858 0.741039 0.711126 0.726785 0.711364 0.719034 00:00:13.207499
13 Reduced Raw Columns kd_tree 30 400 0.705528 0.738693 0.710121 0.725779 0.711700 0.718364 00:00:12.760781
14 Reduced Raw Columns kd_tree 5 150 0.694807 0.756449 0.701408 0.730473 0.714381 0.719504 00:00:09.725261
15 Reduced Raw Columns kd_tree 10 150 0.694807 0.756449 0.701408 0.730473 0.714381 0.719504 00:00:10.899176
16 Reduced Raw Columns kd_tree 20 150 0.694807 0.756449 0.701408 0.730473 0.714381 0.719504 00:00:10.494060
17 Reduced Raw Columns kd_tree 50 150 0.694807 0.756449 0.701408 0.730473 0.714381 0.719504 00:00:10.031979
18 Reduced Raw Columns kd_tree 100 150 0.694807 0.756449 0.701408 0.730473 0.714381 0.719504 00:00:10.955147
19 Reduced Raw Columns kd_tree 150 150 0.694807 0.756449 0.701408 0.730473 0.714381 0.719504 00:00:10.760124
ModelVersion algorithm leaf_size n_neighbors Iteration 0 Iteration 1 Iteration 2 Iteration 3 Iteration 4 MeanAccuracy RunTime
0 Reduced Raw Columns ball_tree 30 5 0.608040 0.757789 0.656166 0.710023 0.686557 0.683715 00:00:12.948480
1 Reduced Raw Columns ball_tree 30 10 0.628141 0.735343 0.660188 0.723098 0.700302 0.689414 00:00:12.225365
2 Reduced Raw Columns ball_tree 30 15 0.661977 0.773869 0.669906 0.738518 0.714717 0.711797 00:00:13.189857
3 Reduced Raw Columns ball_tree 30 20 0.661307 0.769179 0.682306 0.733490 0.709353 0.711127 00:00:12.333936
4 Reduced Raw Columns ball_tree 30 30 0.684087 0.762814 0.690684 0.735166 0.713711 0.717292 00:00:11.851787
5 Reduced Raw Columns ball_tree 30 40 0.684757 0.764824 0.693365 0.733490 0.722762 0.719840 00:00:12.104643
6 Reduced Raw Columns ball_tree 30 50 0.692462 0.767504 0.702413 0.732149 0.717399 0.722385 00:00:13.130008
7 Reduced Raw Columns ball_tree 30 100 0.690117 0.761474 0.701408 0.732819 0.718404 0.720844 00:00:12.284532
8 Reduced Raw Columns ball_tree 30 150 0.694807 0.756449 0.701408 0.730473 0.714381 0.719504 00:00:12.814463
9 Reduced Raw Columns ball_tree 30 200 0.703853 0.746064 0.707105 0.726785 0.717734 0.720308 00:00:13.789529
10 Reduced Raw Columns ball_tree 30 250 0.702848 0.744054 0.706769 0.729802 0.714381 0.719571 00:00:13.042148
11 Reduced Raw Columns ball_tree 30 300 0.705528 0.743719 0.707775 0.728797 0.712370 0.719638 00:00:13.785412
12 Reduced Raw Columns ball_tree 30 350 0.704858 0.741039 0.711126 0.726785 0.711364 0.719034 00:00:12.747222
13 Reduced Raw Columns ball_tree 30 400 0.705528 0.738693 0.710121 0.725779 0.711700 0.718364 00:00:13.808627
14 Reduced Raw Columns ball_tree 5 150 0.694807 0.756449 0.701408 0.730473 0.714381 0.719504 00:00:19.108152
15 Reduced Raw Columns ball_tree 10 150 0.694807 0.756449 0.701408 0.730473 0.714381 0.719504 00:00:16.105614
16 Reduced Raw Columns ball_tree 20 150 0.694807 0.756449 0.701408 0.730473 0.714381 0.719504 00:00:13.368596
17 Reduced Raw Columns ball_tree 50 150 0.694807 0.756449 0.701408 0.730473 0.714381 0.719504 00:00:12.850643
18 Reduced Raw Columns ball_tree 100 150 0.694807 0.756449 0.701408 0.730473 0.714381 0.719504 00:00:12.141597
19 Reduced Raw Columns ball_tree 150 150 0.694807 0.756449 0.701408 0.730473 0.714381 0.719504 00:00:12.268231
ModelVersion algorithm leaf_size n_neighbors Iteration 0 Iteration 1 Iteration 2 Iteration 3 Iteration 4 MeanAccuracy RunTime
0 With PCA kd_tree 30 5 0.592295 0.685427 0.656836 0.683205 0.690245 0.661602 00:00:04.431198
1 With PCA kd_tree 30 10 0.611725 0.715243 0.657842 0.709353 0.701643 0.679161 00:00:04.645786
2 With PCA kd_tree 30 15 0.652261 0.758794 0.664209 0.716393 0.719075 0.702146 00:00:05.141205
3 With PCA kd_tree 30 20 0.664657 0.756784 0.673592 0.728797 0.719075 0.708581 00:00:05.216365
4 With PCA kd_tree 30 30 0.676047 0.759129 0.687332 0.733490 0.720751 0.715350 00:00:06.612653
5 With PCA kd_tree 30 40 0.690452 0.766164 0.688003 0.732149 0.722092 0.719772 00:00:06.824006
6 With PCA kd_tree 30 50 0.690452 0.765494 0.691354 0.733155 0.716728 0.719437 00:00:06.793257
7 With PCA kd_tree 30 100 0.684087 0.763819 0.708445 0.740194 0.721086 0.723526 00:00:08.273867
8 With PCA kd_tree 30 150 0.688107 0.754104 0.709786 0.726785 0.715722 0.718901 00:00:09.371049
9 With PCA kd_tree 30 200 0.698157 0.741374 0.713807 0.725779 0.713711 0.718566 00:00:11.152651
10 With PCA kd_tree 30 250 0.704523 0.742044 0.713472 0.724103 0.720080 0.720844 00:00:10.116891
11 With PCA kd_tree 5 150 0.688107 0.754104 0.709786 0.726785 0.715722 0.718901 00:00:08.939612
12 With PCA kd_tree 10 150 0.688107 0.754104 0.709786 0.726785 0.715722 0.718901 00:00:08.813951
13 With PCA kd_tree 20 150 0.688107 0.754104 0.709450 0.726785 0.715722 0.718834 00:00:09.174437
14 With PCA kd_tree 50 150 0.688107 0.754104 0.709450 0.726785 0.715722 0.718834 00:00:09.381903
15 With PCA kd_tree 100 150 0.688107 0.754104 0.709786 0.726785 0.715722 0.718901 00:00:09.858692
16 With PCA kd_tree 150 150 0.688107 0.754104 0.709786 0.726785 0.715722 0.718901 00:00:11.262632
17 With PCA kd_tree 300 150 0.688107 0.754104 0.709786 0.726785 0.715722 0.718901 00:00:08.930427
ModelVersion algorithm leaf_size n_neighbors Iteration 0 Iteration 1 Iteration 2 Iteration 3 Iteration 4 MeanAccuracy RunTime
0 With PCA ball_tree 30 5 0.592295 0.685427 0.656836 0.683205 0.690245 0.661602 00:00:08.311050
1 With PCA ball_tree 30 10 0.611725 0.715243 0.657842 0.709353 0.701643 0.679161 00:00:09.021778
2 With PCA ball_tree 30 15 0.652261 0.758794 0.664209 0.716393 0.718740 0.702079 00:00:10.501073
3 With PCA ball_tree 30 20 0.664657 0.756784 0.673592 0.728797 0.719075 0.708581 00:00:10.503517
4 With PCA ball_tree 30 30 0.676047 0.759129 0.687332 0.733490 0.720751 0.715350 00:00:09.351167
5 With PCA ball_tree 30 40 0.690452 0.766164 0.688003 0.732149 0.722092 0.719772 00:00:09.469677
6 With PCA ball_tree 30 50 0.690452 0.765494 0.691354 0.733155 0.716728 0.719437 00:00:09.704138
7 With PCA ball_tree 30 100 0.684087 0.763819 0.708445 0.740194 0.721086 0.723526 00:00:10.408253
8 With PCA ball_tree 30 150 0.688107 0.754104 0.709786 0.726785 0.715722 0.718901 00:00:09.838402
9 With PCA ball_tree 30 200 0.698157 0.741374 0.713807 0.725779 0.713711 0.718566 00:00:11.225301
10 With PCA ball_tree 30 250 0.704523 0.742044 0.713472 0.724103 0.720080 0.720844 00:00:10.658733
11 With PCA ball_tree 5 150 0.688107 0.754104 0.709450 0.726785 0.715722 0.718834 00:00:10.389064
12 With PCA ball_tree 10 150 0.688107 0.754104 0.709786 0.726785 0.715722 0.718901 00:00:08.270986
13 With PCA ball_tree 20 150 0.688107 0.754104 0.709786 0.726785 0.715722 0.718901 00:00:11.340652
14 With PCA ball_tree 50 150 0.688107 0.754104 0.709786 0.726785 0.715722 0.718901 00:00:09.678022
15 With PCA ball_tree 100 150 0.688107 0.754104 0.709786 0.726785 0.715722 0.718901 00:00:10.259260
16 With PCA ball_tree 150 150 0.688107 0.754104 0.709786 0.726785 0.715722 0.718901 00:00:09.493982
17 With PCA ball_tree 300 150 0.688107 0.754104 0.709786 0.726785 0.715722 0.718901 00:00:10.352049
CPU times: user 11h 14min 47s, sys: 14min 38s, total: 11h 29min 25s
Wall time: 20min 12s
In [125]:
%%time

knn_clf = KNeighborsClassifier(n_neighbors = 250, algorithm = 'kd_tree',leaf_size = 30, n_jobs=-1) # get object

knn_clf, knn_acc = compute_kfold_scores_ClassificationBinary(clf         = knn_clf)
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
confusion matrix
Predicted    NS    SC   All
True                       
NS          992   508  1500
SC          379  1106  1485
All        1371  1614  2985

Normalized confusion matrix
[[ 0.66133333  0.33866667]
 [ 0.25521886  0.74478114]]
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
confusion matrix
Predicted    NS    SC   All
True                       
NS         1250   250  1500
SC          514   971  1485
All        1764  1221  2985

Normalized confusion matrix
[[ 0.83333333  0.16666667]
 [ 0.34612795  0.65387205]]
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
confusion matrix
Predicted    NS    SC   All
True                       
NS          935   564  1499
SC          311  1174  1485
All        1246  1738  2984

Normalized confusion matrix
[[ 0.62374917  0.37625083]
 [ 0.20942761  0.79057239]]
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
confusion matrix
Predicted    NS    SC   All
True                       
NS         1041   458  1499
SC          348  1136  1484
All        1389  1594  2983

Normalized confusion matrix
[[ 0.69446298  0.30553702]
 [ 0.23450135  0.76549865]]
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
confusion matrix
Predicted    NS    SC   All
True                       
NS         1001   498  1499
SC          354  1130  1484
All        1355  1628  2983

Normalized confusion matrix
[[ 0.66777852  0.33222148]
 [ 0.23854447  0.76145553]]
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
Accuracy Ratings across all iterations: [0.70285, 0.74405, 0.70677, 0.7298, 0.71438]

        Average Accuracy: 0.71957

CPU times: user 18min 27s, sys: 3.18 s, total: 18min 30s
Wall time: 36.5 s
In [ ]:
 
In [ ]:
 

Logistic Regression

We have chosen to manipulate the cost variable (C) within our logistic regression analyzing accuracies at {1.0, .01, .05, 5}. This parameter is essentially an inverted regularization strength equal to 1/lambda per scikit-learn class function code (lambda being the actual regularization item). Therefore, the smaller the cost value the stronger the regularization.

In [126]:
mapping = {'NS':0, 'SC':1}
y = OPMAnalysisDataNoFamBinary.replace({'SEP': mapping})
y = y.SEP
In [153]:
%%R -i OPMAnalysisDataNoFamBinary,fullColumns,y
install.packages("car")
require(car)
str(OPMAnalysisDataNoFamBinary)
print(unlist(fullColumns))
print(paste("# of SEP observations = ", length(y)))
print(paste("SEP type = ", unique(y)))
print(paste("SEP class = ", class(y)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "AGELVL_B". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "AGELVL_C". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "AGELVL_D". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "AGELVL_E". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "AGELVL_F". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "AGELVL_G". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "AGELVL_H". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "AGELVL_I". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "AGELVL_J". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "AGELVL_K". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_01". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_02". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_04". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_05". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_06". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_08". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_09". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_10". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_11". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_12". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_13". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_15". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_16". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_17". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_18". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_19". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_20". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_21". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_22". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_23". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_24". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_25". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_26". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_27". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_28". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_29". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_30". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_31". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_32". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_33". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_34". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_35". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_36". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_37". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_38". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_39". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_40". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_41". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_42". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_44". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_45". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_46". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_47". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_48". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_49". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_50". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_51". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_53". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_54". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_55". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOC_56". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "TOA_10". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "TOA_15". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "TOA_20". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "TOA_30". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "TOA_32". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "TOA_35". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "TOA_38". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "TOA_40". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "TOA_42". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "TOA_44". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "TOA_45". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "TOA_48". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "LOCTYP_1". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "PPTYP_1". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "PPGROUP_11". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "PPGROUP_12". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "TOATYP_1". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py:61: UserWarning: Error while trying to convert the column "TOATYP_2". Fall back to string conversion. The error is: Cannot convert numpy array of unsigned values -- R does not have unsigned integers.
  (name, str(e)))
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/rinterface/__init__.py:145: RRuntimeWarning: Installing package into ‘/scratch/cse/amfrye/R/x86_64-redhat-linux-gnu-library/3.4’
(as ‘lib’ is unspecified)

  warnings.warn(x, RRuntimeWarning)
Selection: 1
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/rinterface/__init__.py:145: RRuntimeWarning: also installing the dependency ‘pbkrtest’


  warnings.warn(x, RRuntimeWarning)
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/rinterface/__init__.py:145: RRuntimeWarning: trying URL 'https://cloud.r-project.org/src/contrib/pbkrtest_0.4-7.tar.gz'

  warnings.warn(x, RRuntimeWarning)
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/rinterface/__init__.py:145: RRuntimeWarning: Content type 'application/x-gzip'
  warnings.warn(x, RRuntimeWarning)
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/rinterface/__init__.py:145: RRuntimeWarning:  length 156406 bytes (152 KB)

  warnings.warn(x, RRuntimeWarning)
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/rinterface/__init__.py:145: RRuntimeWarning: =
  warnings.warn(x, RRuntimeWarning)
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/rinterface/__init__.py:145: RRuntimeWarning: 

  warnings.warn(x, RRuntimeWarning)
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/rinterface/__init__.py:145: RRuntimeWarning: downloaded 152 KB


  warnings.warn(x, RRuntimeWarning)
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/rinterface/__init__.py:145: RRuntimeWarning: trying URL 'https://cloud.r-project.org/src/contrib/car_2.1-5.tar.gz'

  warnings.warn(x, RRuntimeWarning)
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/rinterface/__init__.py:145: RRuntimeWarning:  length 628590 bytes (613 KB)

  warnings.warn(x, RRuntimeWarning)
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/rinterface/__init__.py:145: RRuntimeWarning: downloaded 613 KB


  warnings.warn(x, RRuntimeWarning)
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/rinterface/__init__.py:145: RRuntimeWarning: 
  warnings.warn(x, RRuntimeWarning)
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/rinterface/__init__.py:145: RRuntimeWarning: The downloaded source packages are in
	‘/tmp/RtmpPHirQ1/downloaded_packages’
  warnings.warn(x, RRuntimeWarning)
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/rinterface/__init__.py:145: RRuntimeWarning: Loading required package: car

  warnings.warn(x, RRuntimeWarning)
--- Please select a CRAN mirror for use in this session ---
Secure CRAN mirrors 

 1: 0-Cloud [https]                   2: Algeria [https]                
 3: Australia (Canberra) [https]      4: Australia (Melbourne 1) [https]
 5: Australia (Melbourne 2) [https]   6: Australia (Perth) [https]      
 7: Austria [https]                   8: Belgium (Ghent) [https]        
 9: Brazil (PR) [https]              10: Brazil (RJ) [https]            
11: Brazil (SP 1) [https]            12: Brazil (SP 2) [https]          
13: Bulgaria [https]                 14: Chile 1 [https]                
15: Chile 2 [https]                  16: China (Guangzhou) [https]      
17: China (Lanzhou) [https]          18: Colombia (Cali) [https]        
19: Czech Republic [https]           20: Denmark [https]                
21: Ecuador (Cuenca) [https]         22: Estonia [https]                
23: France (Lyon 1) [https]          24: France (Lyon 2) [https]        
25: France (Marseille) [https]       26: France (Montpellier) [https]   
27: France (Paris 2) [https]         28: Germany (Göttingen) [https]    
29: Germany (Münster) [https]        30: Greece [https]                 
31: Iceland [https]                  32: Indonesia (Jakarta) [https]    
33: Ireland [https]                  34: Italy (Padua) [https]          
35: Japan (Tokyo) [https]            36: Malaysia [https]               
37: Mexico (Mexico City) [https]     38: Norway [https]                 
39: Philippines [https]              40: Serbia [https]                 
41: Spain (A Coruña) [https]         42: Spain (Madrid) [https]         
43: Sweden [https]                   44: Switzerland [https]            
45: Turkey (Denizli) [https]         46: Turkey (Mersin) [https]        
47: UK (Bristol) [https]             48: UK (Cambridge) [https]         
49: UK (London 1) [https]            50: USA (CA 1) [https]             
51: USA (IA) [https]                 52: USA (KS) [https]               
53: USA (MI 1) [https]               54: USA (OR) [https]               
55: USA (TN) [https]                 56: USA (TX 1) [https]             
57: Vietnam [https]                  58: (other mirrors)                


'data.frame':	14920 obs. of  100 variables:
 $ SEP                          : chr  "NS" "NS" "NS" "NS" ...
 $ GSEGRD                       : num  11 12 11 12 13 12 13 13 11 11 ...
 $ IndAvgSalary                 : num  65898 81219 65898 82168 121939 ...
 $ SalaryOverUnderIndAvg        : num  -4041 -9406 -2807 -6547 -26020 ...
 $ LowerLimitAge                : num  20 25 25 25 25 25 25 25 25 25 ...
 $ YearsToRetirement            : num  37 32 32 32 32 32 32 32 32 32 ...
 $ BLS_FEDERAL_OtherSep_Rate    : num  0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 ...
 $ BLS_FEDERAL_Quits_Rate       : num  0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 ...
 $ BLS_FEDERAL_TotalSep_Level   : int  34 34 34 34 34 34 34 34 34 34 ...
 $ BLS_FEDERAL_JobOpenings_Rate : num  2.1 2.1 2.1 2.1 2.1 2.1 2.1 2.1 2.1 2.1 ...
 $ BLS_FEDERAL_OtherSep_Level   : int  10 10 10 10 10 10 10 10 10 10 ...
 $ BLS_FEDERAL_Quits_Level      : int  11 11 11 11 11 11 11 11 11 11 ...
 $ BLS_FEDERAL_JobOpenings_Level: int  58 58 58 58 58 58 58 58 58 58 ...
 $ BLS_FEDERAL_Layoffs_Rate     : num  0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 ...
 $ BLS_FEDERAL_Layoffs_Level    : int  13 13 13 13 13 13 13 13 13 13 ...
 $ BLS_FEDERAL_TotalSep_Rate    : num  1.2 1.2 1.2 1.2 1.2 1.2 1.2 1.2 1.2 1.2 ...
 $ SALARYLog                    : num  11 11.2 11.1 11.2 11.5 ...
 $ LOSSqrt                      : num  2.17 2.68 2 2.41 1.41 ...
 $ SEPCount_EFDATE_OCCLog       : num  5.82 5.82 5.82 4.32 4.14 ...
 $ SEPCount_EFDATE_LOCLog       : num  6.15 6.24 6.83 6.83 6.83 ...
 $ IndAvgSalaryLog              : num  11.1 11.3 11.1 11.3 11.7 ...
 $ AGELVL_B                     : chr  "1" "0" "0" "0" ...
 $ AGELVL_C                     : chr  "0" "1" "1" "1" ...
 $ AGELVL_D                     : chr  "0" "0" "0" "0" ...
 $ AGELVL_E                     : chr  "0" "0" "0" "0" ...
 $ AGELVL_F                     : chr  "0" "0" "0" "0" ...
 $ AGELVL_G                     : chr  "0" "0" "0" "0" ...
 $ AGELVL_H                     : chr  "0" "0" "0" "0" ...
 $ AGELVL_I                     : chr  "0" "0" "0" "0" ...
 $ AGELVL_J                     : chr  "0" "0" "0" "0" ...
 $ AGELVL_K                     : chr  "0" "0" "0" "0" ...
 $ LOC_01                       : chr  "0" "0" "0" "0" ...
 $ LOC_02                       : chr  "0" "0" "0" "0" ...
 $ LOC_04                       : chr  "0" "0" "0" "0" ...
 $ LOC_05                       : chr  "0" "0" "0" "0" ...
 $ LOC_06                       : chr  "0" "0" "0" "0" ...
 $ LOC_08                       : chr  "0" "0" "0" "0" ...
 $ LOC_09                       : chr  "0" "0" "0" "0" ...
 $ LOC_10                       : chr  "0" "0" "0" "0" ...
 $ LOC_11                       : chr  "0" "0" "0" "0" ...
 $ LOC_12                       : chr  "0" "0" "0" "0" ...
 $ LOC_13                       : chr  "0" "0" "0" "0" ...
 $ LOC_15                       : chr  "0" "0" "0" "0" ...
 $ LOC_16                       : chr  "0" "0" "0" "0" ...
 $ LOC_17                       : chr  "0" "0" "0" "0" ...
 $ LOC_18                       : chr  "0" "0" "0" "0" ...
 $ LOC_19                       : chr  "0" "0" "0" "0" ...
 $ LOC_20                       : chr  "0" "0" "0" "0" ...
 $ LOC_21                       : chr  "0" "0" "0" "0" ...
 $ LOC_22                       : chr  "0" "0" "0" "0" ...
 $ LOC_23                       : chr  "0" "0" "0" "0" ...
 $ LOC_24                       : chr  "0" "0" "1" "1" ...
 $ LOC_25                       : chr  "0" "0" "0" "0" ...
 $ LOC_26                       : chr  "0" "0" "0" "0" ...
 $ LOC_27                       : chr  "0" "0" "0" "0" ...
 $ LOC_28                       : chr  "0" "0" "0" "0" ...
 $ LOC_29                       : chr  "0" "0" "0" "0" ...
 $ LOC_30                       : chr  "0" "0" "0" "0" ...
 $ LOC_31                       : chr  "0" "0" "0" "0" ...
 $ LOC_32                       : chr  "0" "0" "0" "0" ...
 $ LOC_33                       : chr  "0" "0" "0" "0" ...
 $ LOC_34                       : chr  "0" "0" "0" "0" ...
 $ LOC_35                       : chr  "0" "0" "0" "0" ...
 $ LOC_36                       : chr  "0" "0" "0" "0" ...
 $ LOC_37                       : chr  "0" "0" "0" "0" ...
 $ LOC_38                       : chr  "0" "0" "0" "0" ...
 $ LOC_39                       : chr  "0" "0" "0" "0" ...
 $ LOC_40                       : chr  "0" "0" "0" "0" ...
 $ LOC_41                       : chr  "0" "0" "0" "0" ...
 $ LOC_42                       : chr  "1" "0" "0" "0" ...
 $ LOC_44                       : chr  "0" "0" "0" "0" ...
 $ LOC_45                       : chr  "0" "0" "0" "0" ...
 $ LOC_46                       : chr  "0" "0" "0" "0" ...
 $ LOC_47                       : chr  "0" "0" "0" "0" ...
 $ LOC_48                       : chr  "0" "0" "0" "0" ...
 $ LOC_49                       : chr  "0" "1" "0" "0" ...
 $ LOC_50                       : chr  "0" "0" "0" "0" ...
 $ LOC_51                       : chr  "0" "0" "0" "0" ...
 $ LOC_53                       : chr  "0" "0" "0" "0" ...
 $ LOC_54                       : chr  "0" "0" "0" "0" ...
 $ LOC_55                       : chr  "0" "0" "0" "0" ...
 $ LOC_56                       : chr  "0" "0" "0" "0" ...
 $ TOA_10                       : chr  "1" "1" "0" "1" ...
 $ TOA_15                       : chr  "0" "0" "0" "0" ...
 $ TOA_20                       : chr  "0" "0" "0" "0" ...
 $ TOA_30                       : chr  "0" "0" "0" "0" ...
 $ TOA_32                       : chr  "0" "0" "0" "0" ...
 $ TOA_35                       : chr  "0" "0" "0" "0" ...
 $ TOA_38                       : chr  "0" "0" "1" "0" ...
 $ TOA_40                       : chr  "0" "0" "0" "0" ...
 $ TOA_42                       : chr  "0" "0" "0" "0" ...
 $ TOA_44                       : chr  "0" "0" "0" "0" ...
 $ TOA_45                       : chr  "0" "0" "0" "0" ...
 $ TOA_48                       : chr  "0" "0" "0" "0" ...
 $ LOCTYP_1                     : chr  "1" "1" "1" "1" ...
 $ PPTYP_1                      : chr  "1" "1" "1" "1" ...
 $ PPGROUP_11                   : chr  "1" "1" "1" "1" ...
 $ PPGROUP_12                   : chr  "0" "0" "0" "0" ...
 $ TOATYP_1                     : chr  "1" "1" "1" "1" ...
  [list output truncated]
 [1] "GSEGRD"                        "IndAvgSalary"                 
 [3] "SalaryOverUnderIndAvg"         "LowerLimitAge"                
 [5] "YearsToRetirement"             "BLS_FEDERAL_OtherSep_Rate"    
 [7] "BLS_FEDERAL_Quits_Rate"        "BLS_FEDERAL_TotalSep_Level"   
 [9] "BLS_FEDERAL_JobOpenings_Rate"  "BLS_FEDERAL_OtherSep_Level"   
[11] "BLS_FEDERAL_Quits_Level"       "BLS_FEDERAL_JobOpenings_Level"
[13] "BLS_FEDERAL_Layoffs_Rate"      "BLS_FEDERAL_Layoffs_Level"    
[15] "BLS_FEDERAL_TotalSep_Rate"     "SALARYLog"                    
[17] "LOSSqrt"                       "SEPCount_EFDATE_OCCLog"       
[19] "SEPCount_EFDATE_LOCLog"        "IndAvgSalaryLog"              
[21] "AGELVL_B"                      "AGELVL_C"                     
[23] "AGELVL_D"                      "AGELVL_E"                     
[25] "AGELVL_F"                      "AGELVL_G"                     
[27] "AGELVL_H"                      "AGELVL_I"                     
[29] "AGELVL_J"                      "AGELVL_K"                     
[31] "LOC_01"                        "LOC_02"                       
[33] "LOC_04"                        "LOC_05"                       
[35] "LOC_06"                        "LOC_08"                       
[37] "LOC_09"                        "LOC_10"                       
[39] "LOC_11"                        "LOC_12"                       
[41] "LOC_13"                        "LOC_15"                       
[43] "LOC_16"                        "LOC_17"                       
[45] "LOC_18"                        "LOC_19"                       
[47] "LOC_20"                        "LOC_21"                       
[49] "LOC_22"                        "LOC_23"                       
[51] "LOC_24"                        "LOC_25"                       
[53] "LOC_26"                        "LOC_27"                       
[55] "LOC_28"                        "LOC_29"                       
[57] "LOC_30"                        "LOC_31"                       
[59] "LOC_32"                        "LOC_33"                       
[61] "LOC_34"                        "LOC_35"                       
[63] "LOC_36"                        "LOC_37"                       
[65] "LOC_38"                        "LOC_39"                       
[67] "LOC_40"                        "LOC_41"                       
[69] "LOC_42"                        "LOC_44"                       
[71] "LOC_45"                        "LOC_46"                       
[73] "LOC_47"                        "LOC_48"                       
[75] "LOC_49"                        "LOC_50"                       
[77] "LOC_51"                        "LOC_53"                       
[79] "LOC_54"                        "LOC_55"                       
[81] "LOC_56"                        "TOA_10"                       
[83] "TOA_15"                        "TOA_20"                       
[85] "TOA_30"                        "TOA_32"                       
[87] "TOA_35"                        "TOA_38"                       
[89] "TOA_40"                        "TOA_42"                       
[91] "TOA_44"                        "TOA_45"                       
[93] "TOA_48"                        "LOCTYP_1"                     
[95] "PPTYP_1"                       "PPGROUP_11"                   
[97] "PPGROUP_12"                    "TOATYP_1"                     
[99] "TOATYP_2"                     
[1] "# of SEP observations =  14920"
[1] "SEP type =  0" "SEP type =  1"
[1] "SEP class =  integer"

LOCTYP_1 and PPTYP_1 have only single level and need removed

In [154]:
%R sapply(OPMAnalysisDataNoFamBinary, function(x) length(unique(x[!is.na(x)])))
Out[154]:
array([    2,     9,  1878, 10766,    10,    10,     4,     4,     9,
          10,     8,     6,    10,     4,     7,     6,  3537,   466,
         180,   399,  1878,     2,     2,     2,     2,     2,     2,
           2,     2,     2,     2,     2,     2,     2,     2,     2,
           2,     2,     2,     2,     2,     2,     2,     2,     2,
           2,     2,     2,     2,     2,     2,     2,     2,     2,
           2,     2,     2,     2,     2,     2,     2,     2,     2,
           2,     2,     2,     2,     2,     2,     2,     2,     2,
           2,     2,     2,     2,     2,     2,     2,     2,     2,
           2,     2,     2,     2,     2,     2,     2,     2,     2,
           2,     2,     2,     2,     1,     1,     2,     2,     2,     2], dtype=int32)
In [155]:
%R sapply(OPMAnalysisDataNoFamBinary[,-c(95,96)], function(x) length(unique(x[!is.na(x)])))
Out[155]:
array([    2,     9,  1878, 10766,    10,    10,     4,     4,     9,
          10,     8,     6,    10,     4,     7,     6,  3537,   466,
         180,   399,  1878,     2,     2,     2,     2,     2,     2,
           2,     2,     2,     2,     2,     2,     2,     2,     2,
           2,     2,     2,     2,     2,     2,     2,     2,     2,
           2,     2,     2,     2,     2,     2,     2,     2,     2,
           2,     2,     2,     2,     2,     2,     2,     2,     2,
           2,     2,     2,     2,     2,     2,     2,     2,     2,
           2,     2,     2,     2,     2,     2,     2,     2,     2,
           2,     2,     2,     2,     2,     2,     2,     2,     2,
           2,     2,     2,     2,     2,     2,     2,     2], dtype=int32)
In [156]:
%R OPMAnalysisDataNoFamBinary[,-c(95,96)]
Out[156]:
SEP GSEGRD IndAvgSalary SalaryOverUnderIndAvg LowerLimitAge YearsToRetirement BLS_FEDERAL_OtherSep_Rate BLS_FEDERAL_Quits_Rate BLS_FEDERAL_TotalSep_Level BLS_FEDERAL_JobOpenings_Rate BLS_FEDERAL_OtherSep_Level BLS_FEDERAL_Quits_Level BLS_FEDERAL_JobOpenings_Level BLS_FEDERAL_Layoffs_Rate BLS_FEDERAL_Layoffs_Level BLS_FEDERAL_TotalSep_Rate SALARYLog LOSSqrt SEPCount_EFDATE_OCCLog SEPCount_EFDATE_LOCLog IndAvgSalaryLog AGELVL_B AGELVL_C AGELVL_D AGELVL_E AGELVL_F AGELVL_G AGELVL_H AGELVL_I AGELVL_J AGELVL_K LOC_01 LOC_02 LOC_04 LOC_05 LOC_06 LOC_08 LOC_09 LOC_10 LOC_11 LOC_12 LOC_13 LOC_15 LOC_16 LOC_17 LOC_18 LOC_19 LOC_20 LOC_21 LOC_22 LOC_23 LOC_24 LOC_25 LOC_26 LOC_27 LOC_28 LOC_29 LOC_30 LOC_31 LOC_32 LOC_33 LOC_34 LOC_35 LOC_36 LOC_37 LOC_38 LOC_39 LOC_40 LOC_41 LOC_42 LOC_44 LOC_45 LOC_46 LOC_47 LOC_48 LOC_49 LOC_50 LOC_51 LOC_53 LOC_54 LOC_55 LOC_56 TOA_10 TOA_15 TOA_20 TOA_30 TOA_32 TOA_35 TOA_38 TOA_40 TOA_42 TOA_44 TOA_45 TOA_48 PPGROUP_11 PPGROUP_12 TOATYP_1 TOATYP_2
0 NS 11.0 65898.205859 -4041.205859 20.0 37.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.032581 2.167948 5.817111 6.152733 11.095866 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
1 NS 12.0 81218.917413 -9405.917413 25.0 32.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.181821 2.683282 5.817111 6.240276 11.304903 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
2 NS 11.0 65898.205859 -2807.205859 25.0 32.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.052333 2.000000 5.817111 6.827629 11.095866 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
3 NS 12.0 82168.243394 -6547.243394 25.0 32.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.233489 2.408319 4.317488 6.827629 11.316524 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
4 NS 13.0 121938.733696 -26019.733696 25.0 32.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.471259 1.414214 4.143135 6.827629 11.711274 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
5 NS 12.0 86658.133166 -5996.133166 25.0 32.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.298023 2.302173 3.135494 7.095064 11.369726 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
6 NS 13.0 102367.108324 -12443.108324 25.0 32.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.406720 2.213594 3.332205 6.827629 11.536321 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
7 NS 13.0 90154.615385 -230.615385 25.0 32.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.406720 1.000000 1.609438 7.095064 11.409281 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1
8 NS 11.0 63268.197674 -177.197674 25.0 32.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.052333 1.449138 3.332205 7.021976 11.055138 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
9 NS 11.0 68550.998470 3364.001530 25.0 32.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.183240 2.280351 4.174387 5.117994 11.135333 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
10 NS 12.0 115004.907303 -11518.907303 25.0 32.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.547192 1.949359 4.143135 6.827629 11.652730 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
11 NS 12.0 81888.167064 -3746.167064 25.0 32.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.266283 2.073644 3.332205 6.827629 11.313110 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
12 NS 11.0 65898.205859 -3670.205859 25.0 32.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.038560 0.707107 5.817111 6.698268 11.095866 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
13 NS 12.0 82676.532609 -4534.532609 25.0 32.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.266283 2.049390 4.442651 7.021976 11.322691 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14 NS 9.0 52460.545881 -4537.545881 25.0 32.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 10.777351 1.612452 5.817111 6.212606 10.867817 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
15 NS 11.0 68157.694737 -1420.694737 25.0 32.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.108515 2.073644 4.025352 7.563201 11.129579 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
16 NS 11.0 71578.443548 -11663.443548 25.0 32.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.000682 1.048809 1.098612 6.390241 11.178549 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1
17 NS 11.0 63762.518234 -1895.518234 25.0 32.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.032742 1.516575 4.442651 6.716595 11.062921 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
18 NS 9.0 52460.545881 -4537.545881 25.0 32.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 10.777351 2.323790 5.817111 5.686975 10.867817 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
19 NS 12.0 81218.917413 -3526.917413 25.0 32.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.260508 2.720294 5.817111 5.476464 11.304903 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
20 NS 7.0 45637.723577 -1022.723577 25.0 32.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 10.705825 1.048809 4.174387 6.240276 10.728490 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
21 NS 10.0 69914.863982 5023.136018 30.0 27.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.224416 2.024846 6.452049 5.564520 11.155034 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
22 NS 12.0 81218.917413 -4146.917413 30.0 27.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.252495 1.378405 5.817111 6.698268 11.304903 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
23 NS 12.0 82168.243394 -124.243394 30.0 27.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.315011 3.361547 4.317488 6.698268 11.316524 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
24 NS 15.0 145444.410714 -16283.410714 30.0 27.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.768815 2.569047 3.332205 7.095064 11.887549 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
25 NS 13.0 98471.000502 -5549.000502 30.0 27.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.439516 2.280351 5.817111 6.827629 11.497517 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
26 NS 11.0 65898.205859 -6392.205859 30.0 27.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 10.993832 1.643168 5.817111 5.793014 11.095866 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
27 NS 13.0 98471.000502 444.999498 30.0 27.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.502026 3.130495 5.817111 7.095064 11.497517 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
28 NS 14.0 122479.704518 -12675.704518 30.0 27.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.606452 3.049590 5.176150 7.095064 11.715701 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0
29 NS 12.0 86919.780702 -4875.780702 30.0 27.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.315011 2.588436 2.197225 6.698268 11.372741 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
30 NS 9.0 52460.545881 3161.454119 30.0 27.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 10.926334 1.732051 5.817111 7.095064 10.867817 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
31 NS 11.0 68533.372995 -8618.372995 30.0 27.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.000682 1.516575 3.555348 7.563201 11.135076 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
32 NS 12.0 81218.917413 -4347.917413 30.0 27.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.249884 2.449490 5.817111 7.563201 11.304903 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
33 NS 11.0 69997.224535 3548.775465 30.0 27.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.205666 3.301515 3.044522 6.900731 11.156211 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
34 NS 15.0 148432.131584 -15104.131584 30.0 27.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.800568 2.469818 5.176150 7.095064 11.907883 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0
35 NS 12.0 81218.917413 -5597.917413 30.0 27.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.233489 2.144761 5.817111 6.827629 11.304903 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
36 NS 12.0 86552.911802 -3157.911802 30.0 27.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.331344 3.646917 4.174387 6.745236 11.368511 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
37 NS 11.0 65898.205859 5605.794141 30.0 27.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.177509 2.073644 5.817111 7.021976 11.095866 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
38 NS 14.0 122479.704518 -12675.704518 30.0 27.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.606452 1.673320 5.176150 7.095064 11.715701 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1
39 NS 9.0 52460.545881 919.454119 30.0 27.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 10.885191 2.489980 5.817111 7.563201 10.867817 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
40 NS 9.0 52460.545881 -2940.545881 30.0 27.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 10.810132 2.387467 5.817111 6.390241 10.867817 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
41 NS 11.0 65898.205859 3836.794141 30.0 27.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.152458 1.949359 5.817111 6.265301 11.095866 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
42 NS 12.0 82676.532609 506.467391 30.0 27.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.328798 2.529822 4.442651 7.021976 11.322691 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
43 NS 12.0 81218.917413 -1021.917413 30.0 27.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.292241 3.178050 5.817111 5.793014 11.304903 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
44 NS 9.0 52460.545881 1339.454119 30.0 27.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 10.893029 3.016621 5.817111 5.337538 10.867817 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
45 NS 14.0 119824.704879 7687.295121 30.0 27.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.755966 1.414214 5.817111 7.095064 11.693785 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
46 NS 11.0 65898.205859 1657.794141 30.0 27.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.120712 1.974842 5.817111 6.265301 11.095866 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
47 NS 9.0 52460.545881 6860.454119 30.0 27.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 10.990719 2.645751 5.817111 5.564520 10.867817 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
48 NS 9.0 52460.545881 3161.454119 30.0 27.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 10.926334 1.483240 5.817111 6.827629 10.867817 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
49 NS 12.0 81218.917413 9525.082587 30.0 27.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.415798 1.732051 5.817111 7.021976 11.304903 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
50 NS 14.0 122479.704518 -12675.704518 30.0 27.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.606452 1.414214 5.176150 7.095064 11.715701 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0
51 NS 12.0 81218.917413 -3076.917413 35.0 22.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.266283 2.345208 5.817111 7.095064 11.304903 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
52 NS 14.0 122479.704518 -5592.704518 35.0 22.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.668963 2.588436 5.176150 7.021976 11.715701 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0
53 NS 15.0 148432.131584 -15104.131584 35.0 22.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.800568 1.949359 5.176150 7.021976 11.907883 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0
54 NS 13.0 100441.761115 -4522.761115 35.0 22.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.471259 3.178050 4.317488 7.095064 11.517333 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
55 NS 11.0 67298.007653 -7383.007653 35.0 22.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.000682 1.264911 4.718499 6.152733 11.116886 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
56 NS 13.0 98471.000502 -5549.000502 35.0 22.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.439516 3.255764 5.817111 7.095064 11.497517 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
57 NS 12.0 82676.532609 -4534.532609 35.0 22.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.266283 2.144761 4.442651 7.021976 11.322691 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
58 NS 13.0 104301.705607 609.294393 35.0 22.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.560868 3.000000 4.718499 7.021976 11.555043 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1
59 NS 13.0 100116.976930 1797.023070 35.0 22.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.531885 3.633180 3.332205 7.021976 11.514095 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
60 NS 9.0 53388.082192 7447.917808 35.0 22.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.015937 0.547723 4.442651 7.021976 10.885343 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
61 NS 13.0 98471.000502 -2552.000502 35.0 22.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.471259 2.323790 5.817111 7.095064 11.497517 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
62 NS 11.0 65270.545455 8823.454545 35.0 22.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.213090 3.240370 4.418841 6.152733 11.086296 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
63 NS 15.0 148432.131584 1560.868416 35.0 22.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.918344 3.130495 5.176150 7.095064 11.907883 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0
64 NS 13.0 104499.288690 -5760.288690 35.0 22.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.500235 3.361547 4.174387 6.716595 11.556936 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
65 NS 12.0 85842.527653 -2070.527653 35.0 22.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.335854 1.897367 2.302585 5.758902 11.360270 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
66 NS 14.0 124094.109562 -10748.109562 35.0 22.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.638200 3.130495 4.442651 7.095064 11.728796 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
67 NS 14.0 122479.704518 -5592.704518 35.0 22.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.668963 2.280351 5.176150 7.095064 11.715701 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0
68 NS 11.0 68807.640150 13521.359850 35.0 22.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.318479 2.569047 4.158883 5.564520 11.139070 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
69 NS 12.0 81218.917413 -3076.917413 35.0 22.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.266283 2.000000 5.817111 6.827629 11.304903 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
70 NS 12.0 84469.248195 -3807.248195 35.0 22.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.298023 1.414214 4.454347 6.827629 11.344143 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1
71 NS 14.0 122479.704518 -5592.704518 35.0 22.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.668963 2.915476 5.176150 7.095064 11.715701 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0
72 NS 14.0 123010.788889 -6123.788889 35.0 22.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.668963 2.529822 5.817111 7.021976 11.720027 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0
73 NS 11.0 65898.205859 19338.794141 35.0 22.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.353191 3.033150 5.817111 5.686975 11.095866 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
74 NS 12.0 84836.137255 5907.862745 35.0 22.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.415798 3.114482 3.737670 6.827629 11.348477 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
75 NS 13.0 98471.000502 -8547.000502 35.0 22.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.406720 2.236068 5.817111 7.095064 11.497517 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
76 NS 13.0 102166.799898 -2996.799898 35.0 22.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.504591 3.872983 4.442651 6.075346 11.534362 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
77 NS 13.0 103163.886640 -4552.886640 40.0 17.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.498938 2.366432 1.791759 6.212606 11.544074 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
78 NS 14.0 119824.704879 -2937.704879 40.0 17.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.668963 4.571652 5.817111 6.827629 11.693785 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
79 NS 10.0 69914.863982 -4217.863982 40.0 17.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.092809 1.788854 6.452049 6.716595 11.155034 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
80 NS 12.0 81218.917413 -3198.917413 40.0 17.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.264720 2.213594 5.817111 5.337538 11.304903 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
81 NS 14.0 123955.919861 10639.080139 40.0 17.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.810026 3.255764 3.332205 7.021976 11.727681 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
82 NS 11.0 67994.769874 -6147.769874 40.0 17.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.032419 2.846050 2.302585 6.698268 11.127186 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
83 NS 13.0 100441.761115 -10517.761115 40.0 17.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.406720 3.507136 4.317488 7.095064 11.517333 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
84 NS 13.0 98471.000502 -5549.000502 40.0 17.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.439516 1.516575 5.817111 6.827629 11.497517 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
85 NS 9.0 55955.461107 -3279.461107 40.0 17.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 10.871915 3.065942 4.158883 5.877736 10.932311 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
86 NS 13.0 101709.414519 -10803.414519 40.0 17.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.417581 3.949684 4.770685 5.620401 11.529875 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
87 NS 14.0 120530.582375 6981.417625 40.0 17.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.755966 2.664583 3.295837 7.095064 11.699659 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
88 NS 12.0 82168.243394 -3406.243394 40.0 17.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.274186 3.361547 4.317488 5.921578 11.316524 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
89 NS 10.0 69914.863982 12673.136018 40.0 17.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.321620 3.130495 6.452049 5.337538 11.155034 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
90 NS 11.0 65898.205859 -1764.205859 40.0 17.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.068730 3.834058 5.817111 7.563201 11.095866 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
91 NS 10.0 69914.863982 14169.136018 40.0 17.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.339572 3.033150 6.452049 5.347108 11.155034 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
92 NS 11.0 65898.205859 -4772.205859 40.0 17.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.020693 3.130495 5.817111 6.716595 11.095866 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
93 NS 9.0 52460.545881 -2940.545881 40.0 17.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 10.810132 3.435113 5.817111 7.021976 10.867817 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
94 NS 14.0 122479.704518 8573.295482 40.0 17.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.783357 2.645751 5.176150 7.095064 11.715701 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0
95 NS 13.0 98471.000502 6439.999498 40.0 17.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.560868 3.911521 5.817111 7.021976 11.497517 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
96 NS 11.0 68550.998470 1027.001530 40.0 17.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.150204 2.073644 4.174387 4.890349 11.135333 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
97 NS 10.0 67113.940323 -8556.940323 40.0 17.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 10.977756 2.000000 3.912023 6.212606 11.114147 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
98 NS 12.0 81218.917413 2808.082587 40.0 17.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.338893 3.286335 5.817111 6.152733 11.304903 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
99 NS 12.0 82168.243394 -4026.243394 40.0 17.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.266283 1.303840 4.317488 7.021976 11.316524 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
100 NS 12.0 83989.772593 -5969.772593 40.0 17.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.264720 2.387467 4.770685 5.337538 11.338450 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
101 NS 11.0 69431.488814 -9516.488814 40.0 17.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.000682 1.549193 4.454347 6.265301 11.148096 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
102 NS 9.0 53716.937500 14070.062500 40.0 17.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.124126 1.974842 2.484907 6.827629 10.891484 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
103 NS 11.0 66556.592744 2843.407256 45.0 12.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.147642 3.507136 4.317488 6.827629 11.105808 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
104 NS 12.0 81218.917413 -139.917413 45.0 12.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.303179 3.271085 5.817111 5.820083 11.304903 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
105 NS 12.0 81218.917413 -2456.917413 45.0 12.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.274186 3.209361 5.817111 6.698268 11.304903 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
106 NS 12.0 81270.257040 22942.742960 45.0 12.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.554192 2.683282 4.406719 7.563201 11.305535 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
107 NS 12.0 81218.917413 4484.082587 45.0 12.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.358643 2.738613 5.817111 7.021976 11.304903 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
108 NS 11.0 68648.288490 929.711510 45.0 12.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.150204 3.714835 2.302585 5.620401 11.136751 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
109 NS 12.0 85224.629066 16641.370934 45.0 12.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.531414 2.366432 4.718499 6.265301 11.353046 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
110 NS 11.0 63762.518234 -3847.518234 45.0 12.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.000682 1.140175 4.442651 5.746203 11.062921 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
111 NS 11.0 69588.988002 1922.011998 45.0 12.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.177607 4.949747 4.770685 6.368187 11.150362 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
112 NS 13.0 99334.429280 -13938.429280 45.0 12.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.355055 2.509980 2.397895 7.021976 11.506248 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
113 NS 13.0 108903.845146 -6604.845146 45.0 12.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.535655 3.130495 2.890372 5.564520 11.598221 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
114 NS 15.0 214400.347826 -14400.347826 45.0 12.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 12.206073 0.547723 5.666427 5.877736 12.275600 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0
115 NS 13.0 102367.108324 5541.891676 45.0 12.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.589044 3.924283 3.332205 6.827629 11.536321 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
116 NS 11.0 68807.640150 6568.359850 45.0 12.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.230244 5.029911 4.158883 5.164786 11.139070 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
117 NS 14.0 119824.704879 -2937.704879 45.0 12.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.668963 3.049590 5.817111 7.095064 11.693785 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
118 NS 13.0 98471.000502 3442.999498 45.0 12.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.531885 4.743416 5.817111 7.021976 11.497517 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
119 NS 11.0 78776.670354 9073.329646 45.0 12.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.383386 1.341641 6.452049 7.563201 11.274372 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
120 NS 14.0 124261.774194 -14457.774194 45.0 12.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.606452 2.509980 1.791759 7.021976 11.730146 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
121 NS 14.0 184294.595000 -23091.595000 45.0 12.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.990420 2.549510 5.666427 6.745236 12.124291 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0
122 NS 13.0 104301.705607 3132.294393 45.0 12.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.584632 3.286335 4.718499 5.758902 11.555043 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
123 NS 12.0 85224.629066 -8778.629066 45.0 12.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.244340 3.240370 4.718499 6.698268 11.353046 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
124 NS 14.0 184294.595000 -1802.595000 45.0 12.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 12.114462 2.236068 5.666427 5.420535 12.124291 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0
125 NS 14.0 125853.066493 -16049.066493 45.0 12.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.606452 2.049390 3.135494 7.095064 11.742870 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1
126 NS 14.0 122526.088857 -5639.088857 45.0 12.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.668963 2.915476 4.317488 7.021976 11.716079 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
127 NS 11.0 65898.205859 1747.794141 45.0 12.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.122044 3.872983 5.817111 5.347108 11.095866 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
128 NS 13.0 104927.762299 2506.237701 45.0 12.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.584632 5.253570 3.713572 6.075346 11.561027 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
129 NS 15.0 147495.653509 9604.346491 45.0 12.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.964638 4.604346 4.158883 6.827629 11.901554 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
130 NS 13.0 104574.826233 -2660.826233 50.0 7.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.531885 1.870829 4.418841 6.827629 11.557658 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
131 NS 11.0 68807.640150 6568.359850 50.0 7.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.230244 4.827007 4.158883 5.420535 11.139070 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
132 NS 12.0 85767.283082 -4688.283082 50.0 7.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.303179 1.702939 3.091042 6.716595 11.359393 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
133 NS 13.0 104301.705607 3132.294393 50.0 7.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.584632 5.059644 4.718499 5.278115 11.555043 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
134 NS 12.0 81218.917413 -4772.917413 50.0 7.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.244340 5.205766 5.817111 5.141664 11.304903 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
135 NS 14.0 123955.919861 14180.080139 50.0 7.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.835994 3.660601 3.332205 7.021976 11.727681 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
136 NS 12.0 82676.532609 -6230.532609 50.0 7.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.244340 3.033150 4.442651 6.900731 11.322691 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
137 NS 12.0 81218.917413 4492.082587 50.0 7.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.358736 5.224940 5.817111 6.390241 11.304903 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
138 NS 12.0 115004.907303 4713.092697 50.0 7.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.692894 4.615192 4.143135 6.212606 11.652730 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
139 NS 11.0 68550.998470 11863.001530 50.0 7.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.294944 1.949359 4.174387 5.117994 11.135333 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
140 NS 15.0 148509.417153 8590.582847 50.0 7.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.964638 4.795832 4.718499 6.265301 11.908404 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
141 NS 14.0 125274.322772 12861.677228 50.0 7.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.835994 5.069517 4.718499 6.827629 11.738261 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
142 NS 12.0 81218.917413 -2456.917413 50.0 7.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.274186 2.345208 5.817111 6.390241 11.304903 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
143 NS 13.0 105405.229084 8498.770916 50.0 7.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.643111 3.591657 2.564949 7.095064 11.565568 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
144 NS 13.0 105101.899758 5607.100242 50.0 7.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.614660 5.059644 6.452049 5.877736 11.562686 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
145 NS 14.0 119824.704879 7687.295121 50.0 7.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.755966 5.899152 5.817111 7.095064 11.693785 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
146 NS 14.0 119824.704879 -6277.704879 50.0 7.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.639972 4.626013 5.817111 6.900731 11.693785 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
147 NS 14.0 184294.595000 4627.405000 50.0 7.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 12.149090 2.756810 5.666427 6.368187 12.124291 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0
148 NS 13.0 98471.000502 13346.999498 50.0 7.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.624628 3.240370 5.817111 5.117994 11.497517 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
149 NS 13.0 99078.000000 2846.000000 50.0 7.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.531983 5.504544 3.526361 6.152733 11.503663 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
150 NS 13.0 96917.464286 -6011.464286 50.0 7.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.417581 2.302173 4.406719 6.900731 11.481615 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
151 NS 13.0 100905.286351 -4986.286351 50.0 7.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.471259 3.860052 4.158883 7.095064 11.521938 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
152 NS 13.0 104499.288690 2934.711310 50.0 7.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.584632 4.837355 4.174387 6.716595 11.556936 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
153 NS 12.0 82676.532609 -2014.532609 50.0 7.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.298023 2.024846 4.442651 7.021976 11.322691 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
154 NS 15.0 148509.417153 -23514.417153 50.0 7.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.736029 2.323790 4.718499 7.095064 11.908404 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
155 NS 11.0 68648.288490 6727.711510 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.230244 5.735852 2.302585 6.900731 11.136751 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
156 NS 12.0 81945.397368 8398.602632 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.411380 4.795832 2.944439 6.240276 11.313808 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
157 NS 12.0 86552.911802 144.088198 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.370175 6.156298 4.174387 5.793014 11.368511 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
158 NS 15.0 145985.605941 11114.394059 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.964638 6.148170 4.317488 7.095064 11.891263 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
159 NS 12.0 85002.685484 6329.314516 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.422256 5.761944 4.418841 6.075346 11.350438 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
160 NS 13.0 104574.826233 15238.173767 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.693687 5.744563 4.418841 6.827629 11.557658 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
161 NS 14.0 119824.704879 -6478.704879 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.638200 3.361547 5.817111 7.095064 11.693785 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
162 NS 15.0 143028.000000 11132.000000 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.945746 6.090977 2.484907 6.827629 11.870796 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
163 NS 12.0 85478.526232 18734.473768 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.554192 3.162278 3.912023 7.563201 11.356020 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
164 NS 12.0 82676.532609 11727.467391 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.455339 5.648008 4.442651 6.075346 11.322691 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
165 NS 12.0 82168.243394 7099.756606 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.399398 5.366563 4.317488 7.563201 11.316524 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
166 NS 12.0 83656.459986 11815.540014 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.466588 4.472136 4.025352 7.563201 11.334474 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
167 NS 15.0 156835.750000 264.250000 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.964638 6.099180 3.332205 6.827629 11.962954 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
168 NS 15.0 147178.315126 6981.684874 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.945746 5.822371 4.442651 7.095064 11.899400 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
169 NS 13.0 104704.453110 -25.453110 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.558654 5.805170 4.025352 5.921578 11.558897 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
170 NS 11.0 68174.382353 -4394.382353 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.063195 3.577709 3.737670 4.927254 11.129824 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
171 NS 12.0 82168.243394 14437.756606 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.478396 5.567764 4.317488 7.563201 11.316524 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
172 NS 12.0 83440.561069 8763.438931 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.431759 5.683309 1.945910 5.337538 11.331890 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
173 NS 14.0 123955.919861 -3238.919861 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.701204 6.099180 3.332205 5.365976 11.727681 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
174 NS 13.0 104574.826233 22251.173767 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.750571 5.761944 4.418841 6.827629 11.557658 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
175 NS 13.0 100018.809861 7415.190139 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.584632 4.472136 4.369448 5.758902 11.513114 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
176 NS 15.0 144803.680628 1023.319372 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.890176 2.949576 4.369448 6.827629 11.883134 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
177 NS 13.0 104301.705607 10331.294393 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.649491 5.567764 4.718499 6.716595 11.555043 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
178 NS 11.0 65898.205859 3115.794141 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.142065 6.024948 5.817111 7.021976 11.095866 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
179 NS 12.0 81218.917413 6745.082587 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.384683 5.882176 5.817111 5.793014 11.304903 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
180 NS 13.0 100441.761115 16459.238885 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.669083 6.041523 4.317488 7.095064 11.517333 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
181 NS 11.0 68550.998470 2435.001530 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.170238 4.219005 4.174387 7.021976 11.135333 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
182 NS 12.0 84347.371630 10796.628370 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.463147 4.753946 1.609438 5.062595 11.342699 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
183 NS 13.0 98471.000502 1448.999498 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.512125 3.687818 5.817111 6.152733 11.497517 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
184 NS 12.0 81218.917413 -3526.917413 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.260508 1.949359 5.817111 5.476464 11.304903 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
185 NS 11.0 68045.742806 -8130.742806 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.000682 3.974921 4.406719 6.212606 11.127935 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
186 NS 15.0 148432.131584 8667.868416 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.964638 3.885872 5.176150 7.095064 11.907883 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0
187 NS 12.0 82168.243394 1226.756606 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.331344 5.683309 4.317488 5.384495 11.316524 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
188 NS 11.0 68807.640150 7936.359850 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.248230 5.431390 4.158883 6.075346 11.139070 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
189 NS 13.0 98471.000502 -4811.000502 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.447426 5.477226 5.817111 5.620401 11.497517 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
190 NS 15.0 144848.020486 10380.979514 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.952657 6.082763 5.817111 6.152733 11.883440 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
191 NS 12.0 91743.951531 -4489.951531 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.376579 2.898275 6.452049 6.698268 11.426757 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
192 NS 13.0 104850.691877 12050.308123 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.669083 5.486347 2.302585 6.827629 11.560293 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
193 NS 14.0 125274.322772 20465.677228 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.889579 5.621388 4.718499 7.021976 11.738261 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
194 NS 10.0 69424.354545 -816.354545 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.136164 3.464102 4.454347 6.368187 11.147993 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
195 NS 15.0 148432.131584 15642.868416 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 12.008079 5.215362 5.176150 7.021976 11.907883 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0
196 NS 15.0 148432.131584 -2580.131584 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.890348 5.477226 5.176150 6.390241 11.907883 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0
197 NS 13.0 105101.899758 6705.100242 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.624529 2.345208 6.452049 7.021976 11.562686 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
198 NS 12.0 84785.351852 5558.648148 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.411380 5.949790 2.302585 5.278115 11.347878 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
199 NS 12.0 115004.907303 12829.092697 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.758488 5.692100 4.143135 7.021976 11.652730 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
200 NS 15.0 148517.790123 -643.790123 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.904116 6.090977 1.386294 5.476464 11.908460 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
201 NS 15.0 145985.605941 -8446.605941 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.831663 5.540758 4.317488 5.793014 11.891263 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
202 NS 12.0 86552.911802 -841.911802 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.358736 3.820995 4.174387 6.698268 11.368511 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
203 NS 14.0 125308.250599 6673.749401 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.790421 5.856620 4.025352 5.758902 11.738532 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
204 NS 14.0 119824.704879 7687.295121 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.755966 5.692100 5.817111 6.827629 11.693785 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
205 NS 14.0 122479.704518 -6243.704518 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.663378 4.049691 5.176150 7.021976 11.715701 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0
206 NS 15.0 148118.417969 8981.582031 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.964638 3.449638 4.174387 7.021976 11.905767 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
207 NS 14.0 123955.919861 3556.080139 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.755966 5.440588 3.332205 6.827629 11.727681 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0
208 NS 12.0 83989.772593 -7543.772593 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.244340 4.037326 4.770685 5.620401 11.338450 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
209 NS 13.0 102166.799898 -2996.799898 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.504591 5.753260 4.442651 5.746203 11.534362 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
210 NS 11.0 68807.640150 6568.359850 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.230244 5.431390 4.158883 5.030438 11.139070 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
211 NS 14.0 122526.088857 15609.911143 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.835994 5.761944 4.317488 7.095064 11.716079 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
212 NS 15.0 148758.813285 5401.186715 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.945746 5.567764 4.418841 7.095064 11.910082 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
213 NS 14.0 184294.595000 8564.405000 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 12.169715 3.987480 5.666427 6.075346 12.124291 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0
214 NS 13.0 100441.761115 26745.238885 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.753414 5.830952 4.317488 7.563201 11.517333 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
215 NS 14.0 125308.250599 6673.749401 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.790421 5.916080 4.025352 5.758902 11.738532 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
216 NS 12.0 83314.435543 7029.564457 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.411380 5.949790 2.564949 5.420535 11.330377 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
217 NS 15.0 148432.131584 8667.868416 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.964638 5.899152 5.176150 7.021976 11.907883 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0
218 NS 12.0 81888.167064 8455.832936 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.411380 5.449771 3.332205 4.890349 11.313110 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
219 NS 15.0 147178.315126 16227.684874 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 12.003993 5.822371 4.442651 7.021976 11.899400 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
220 NS 14.0 122479.704518 8268.295482 55.0 2.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.781027 4.494441 5.176150 6.900731 11.715701 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0
221 NS 12.0 91743.951531 -7898.951531 60.0 -3.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.336725 5.549775 6.452049 7.021976 11.426757 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
222 NS 11.0 68157.694737 3757.305263 60.0 -3.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.183240 3.577709 4.025352 6.265301 11.129579 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
223 NS 15.0 214400.347826 20599.652174 60.0 -3.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 12.367341 2.345208 5.666427 7.095064 12.275600 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0
224 NS 13.0 104253.048969 -5083.048969 60.0 -3.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.504591 2.073644 2.890372 6.900731 11.554576 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1
225 NS 15.0 148432.131584 8667.868416 60.0 -3.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.964638 5.009990 5.176150 7.095064 11.907883 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0
226 NS 13.0 102868.810458 4565.189542 60.0 -3.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.584632 6.212890 2.397895 5.164786 11.541210 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
227 NS 12.0 94618.853659 7763.146341 60.0 -3.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.536466 4.000000 1.945910 6.716595 11.457612 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
228 NS 12.0 87127.450000 1096.550000 60.0 -3.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.387634 5.458938 1.386294 7.021976 11.375127 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
229 NS 12.0 91743.951531 -5711.951531 60.0 -3.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.362475 3.701351 6.452049 7.021976 11.426757 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
230 NS 15.0 144848.020486 5144.979514 60.0 -3.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.918344 3.820995 5.817111 7.095064 11.883440 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
231 NS 13.0 102568.856287 -8908.856287 60.0 -3.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.447426 5.656854 3.912023 5.384495 11.538290 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
232 NS 12.0 84755.875000 3482.125000 60.0 -3.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.387793 5.890671 1.098612 6.390241 11.347530 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
233 NS 13.0 104574.826233 -2650.826233 60.0 -3.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.531983 4.289522 4.418841 6.698268 11.557658 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
234 NS 12.0 87504.272358 2839.727642 60.0 -3.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.411380 6.473021 2.890372 5.476464 11.379443 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
235 NS 15.0 147448.118189 9651.881811 60.0 -3.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.964638 6.480741 2.944439 6.900731 11.901232 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
236 NS 12.0 91743.951531 -3519.951531 60.0 -3.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.387634 2.049390 6.452049 7.095064 11.426757 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
237 NS 14.0 122511.090909 1027.909091 60.0 -3.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.724312 5.138093 4.770685 6.745236 11.715957 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
238 NS 11.0 68045.742806 -2332.742806 60.0 -3.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.093052 4.171331 4.406719 4.927254 11.127935 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
239 NS 11.0 66556.592744 15462.407256 60.0 -3.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.314706 6.403124 4.317488 7.095064 11.105808 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
240 NS 12.0 87398.566265 15156.433735 60.0 -3.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.538155 3.619392 3.637586 7.021976 11.378234 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
241 NS 13.0 104704.453110 6982.546890 60.0 -3.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.623456 6.379655 4.025352 5.793014 11.558897 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
242 NS 15.0 145298.376900 11801.623100 60.0 -3.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.964638 6.348228 4.770685 7.095064 11.886545 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
243 NS 13.0 104574.826233 2011.173767 60.0 -3.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.576707 4.277850 4.418841 5.793014 11.557658 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
244 NS 14.0 125706.569216 1242.430784 60.0 -3.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.751541 5.549775 3.737670 6.716595 11.741706 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
245 NS 12.0 81270.257040 9073.742960 60.0 -3.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.411380 5.029911 4.406719 4.477337 11.305535 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
246 NS 13.0 105127.753680 2306.246320 60.0 -3.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.584632 5.735852 3.737670 5.062595 11.562932 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
247 NS 9.0 59884.373783 6974.626217 60.0 -3.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.110341 2.469818 3.912023 6.698268 11.000171 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
248 NS 11.0 66409.794212 -696.794212 60.0 -3.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.093052 1.673320 4.369448 6.075346 11.103600 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
249 NS 12.0 85478.526232 -6716.526232 60.0 -3.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.274186 3.949684 3.912023 5.384495 11.356020 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
14670 SC 15.0 149430.750000 -2142.750000 40.0 17.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.900145 1.949359 1.609438 7.172425 11.914588 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14671 SC 11.0 79100.263771 8559.736229 40.0 17.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.381221 1.673320 6.363028 5.493061 11.278471 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14672 SC 9.0 60393.678745 -11990.678745 40.0 17.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 10.787317 1.000000 3.850148 6.593045 11.008640 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14673 SC 12.0 85066.240725 -5512.240725 40.0 17.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.284191 0.632456 2.772589 5.811141 11.351186 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14674 SC 15.0 220806.750000 10505.250000 40.0 17.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 12.351523 1.732051 5.525453 6.364751 12.305043 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0
14675 SC 9.0 75003.755877 5465.244123 40.0 17.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.295627 3.286335 3.713572 6.663133 11.225293 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14676 SC 15.0 149705.694175 8994.305825 40.0 17.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.974771 2.489980 5.521461 7.237778 11.916427 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0
14677 SC 11.0 70358.898088 -4511.898088 40.0 17.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.095089 1.303840 4.605170 6.924612 11.161365 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1
14678 SC 11.0 79100.263771 10309.736229 40.0 17.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.400988 3.549648 6.363028 7.161622 11.278471 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14679 SC 9.0 59510.363429 183.636571 40.0 17.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 10.996987 1.843909 4.852030 5.438079 10.993906 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1
14680 SC 15.0 220806.750000 85505.250000 40.0 17.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 12.632359 1.183216 5.525453 6.663133 12.305043 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0
14681 SC 15.0 149705.694175 8994.305825 40.0 17.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.974771 2.828427 5.521461 7.237778 11.916427 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0
14682 SC 10.0 70840.400546 10752.599454 40.0 17.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.309499 2.509980 6.363028 5.493061 11.168185 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14683 SC 9.0 59510.363429 -11107.363429 40.0 17.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 10.787317 0.632456 4.852030 7.161622 10.993906 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1
14684 SC 15.0 220806.750000 -8201.750000 40.0 17.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 12.267191 1.341641 5.525453 7.161622 12.305043 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0
14685 SC 13.0 101243.170958 10745.829042 40.0 17.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.626156 1.183216 5.056246 7.524561 11.525281 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14686 SC 13.0 101243.170958 -6647.170958 40.0 17.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.457370 2.236068 5.056246 5.252273 11.525281 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14687 SC 12.0 87754.776289 264.223711 40.0 17.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.385308 3.646917 3.135494 6.364751 11.382302 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14688 SC 13.0 109912.503580 8664.496420 40.0 17.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.683318 3.130495 2.890372 7.524561 11.607440 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14689 SC 15.0 149705.694175 8994.305825 40.0 17.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.974771 3.860052 5.521461 7.237778 11.916427 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0
14690 SC 9.0 55821.734185 -1906.734185 40.0 17.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 10.895164 0.447214 4.605170 7.524561 10.929919 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1
14691 SC 13.0 106116.637459 -8738.637459 40.0 17.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.486356 1.673320 6.363028 6.663133 11.572294 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14692 SC 13.0 105047.296509 -10451.296509 40.0 17.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.457370 3.240370 4.804021 5.356586 11.562166 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14693 SC 12.0 85317.482394 -6393.482394 40.0 17.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.276241 1.048809 4.852030 6.924612 11.354135 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1
14694 SC 12.0 92736.988124 43039.011876 40.0 17.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.818762 1.516575 6.363028 5.811141 11.437523 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14695 SC 9.0 53456.085470 -5053.085470 40.0 17.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 10.787317 0.836660 2.484907 5.313206 10.886616 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0
14696 SC 11.0 70358.898088 3997.101912 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.216620 3.781534 4.605170 6.603944 11.161365 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14697 SC 11.0 79991.562780 -1333.562780 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.272865 2.701851 2.995732 4.744932 11.289676 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14698 SC 11.0 79991.562780 -2113.562780 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.262899 0.948683 2.995732 4.955827 11.289676 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14699 SC 11.0 79100.263771 9628.736229 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.393342 0.774597 6.363028 7.524561 11.278471 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14700 SC 8.0 57091.339212 1775.660788 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 10.983036 2.509980 4.852030 6.322565 10.952408 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14701 SC 15.0 220806.750000 -21174.750000 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 12.204231 3.687818 5.525453 6.322565 12.305043 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0
14702 SC 9.0 59510.363429 10446.636571 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.155636 2.569047 4.852030 6.548219 10.993906 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14703 SC 11.0 69488.327856 11604.672144 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.303352 1.224745 4.304065 6.001415 11.148914 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14704 SC 7.0 45683.103896 2843.896104 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 10.789876 0.707107 4.852030 5.609472 10.729484 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14705 SC 12.0 85699.737850 -1277.737850 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.343583 4.219005 3.850148 6.593045 11.358605 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14706 SC 15.0 149705.694175 8994.305825 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.974771 0.894427 5.521461 7.237778 11.916427 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0
14707 SC 11.0 69409.643631 -4991.643631 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.073148 1.870829 3.806662 7.161622 11.147781 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14708 SC 12.0 86959.975696 -3718.975696 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.329495 1.816590 4.127134 5.493061 11.373203 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14709 SC 9.0 53456.085470 -5053.085470 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 10.787317 2.569047 2.484907 5.438079 10.886616 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14710 SC 12.0 86675.948025 -16483.948025 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.158990 0.774597 2.639057 5.442418 11.369932 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14711 SC 10.0 70840.400546 11490.599454 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.318503 2.738613 6.363028 6.716595 11.168185 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14712 SC 13.0 101616.197745 -10751.197745 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.417130 3.768289 4.304065 5.493061 11.528958 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14713 SC 12.0 82806.036058 6720.963942 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.402296 3.405877 3.555348 6.001415 11.324256 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14714 SC 13.0 102036.869565 -4658.869565 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.486356 1.816590 4.077537 6.603944 11.533089 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0
14715 SC 13.0 123514.663543 777.336457 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.730389 2.000000 4.043051 4.709530 11.724115 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14716 SC 13.0 103533.818511 4973.181489 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.594570 4.929503 3.367296 5.590987 11.547654 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14717 SC 9.0 63564.446718 5681.553282 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.145421 1.303840 6.363028 6.548219 11.059810 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14718 SC 11.0 68579.699653 -10017.699653 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 10.977841 0.316228 4.709530 6.364751 11.135752 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14719 SC 14.0 131704.247619 7818.752381 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.845985 3.209361 5.525453 6.924612 11.788314 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14720 SC 15.0 220806.750000 15301.250000 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 12.372045 1.949359 5.525453 4.955827 12.305043 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0
14721 SC 13.0 123514.663543 -5445.663543 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.679024 2.073644 4.043051 6.924612 11.724115 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14722 SC 11.0 68374.480370 7756.519630 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.240211 4.370355 2.397895 7.161622 11.132755 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14723 SC 14.0 191284.996653 22448.003347 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 12.272483 2.073644 5.525453 4.744932 12.161520 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0
14724 SC 12.0 82024.692725 -11832.692725 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.158990 0.447214 4.709530 7.161622 11.314776 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14725 SC 12.0 92736.988124 -1481.988124 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.421413 1.843909 6.363028 7.161622 11.437523 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14726 SC 12.0 82024.692725 2846.307275 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.348888 2.302173 4.709530 6.601230 11.314776 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14727 SC 9.0 60393.678745 2526.321255 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.049619 4.381780 3.850148 5.438079 11.008640 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14728 SC 12.0 92736.988124 -4600.988124 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.386636 3.619392 6.363028 4.955827 11.437523 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14729 SC 12.0 82230.512591 -4837.512591 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.256652 2.408319 5.575949 6.716595 11.317282 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14730 SC 15.0 145901.900524 5188.099476 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.925631 4.037326 5.056246 7.524561 11.890690 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14731 SC 9.0 60393.678745 -5538.678745 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 10.912449 0.632456 3.850148 6.364751 11.008640 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14732 SC 11.0 70448.164306 -223.164306 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.159460 2.588436 2.197225 6.603944 11.162632 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14733 SC 12.0 86109.914894 2805.085106 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.395436 0.000000 3.828641 6.601230 11.363380 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14734 SC 11.0 68579.699653 -6093.699653 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.042698 0.447214 4.709530 6.716595 11.135752 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1
14735 SC 14.0 191284.996653 -8965.996653 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 12.113513 1.949359 5.525453 6.548219 12.161520 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0
14736 SC 15.0 149705.694175 8994.305825 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.974771 4.571652 5.521461 7.237778 11.916427 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0
14737 SC 13.0 106116.637459 -3184.637459 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.541824 2.738613 6.363028 6.924612 11.572294 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14738 SC 11.0 79100.263771 6315.736229 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.355289 2.323790 6.363028 6.716595 11.278471 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14739 SC 9.0 63564.446718 12932.553282 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.245007 3.492850 6.363028 6.716595 11.059810 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14740 SC 10.0 70840.400546 6970.599454 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.262038 2.408319 6.363028 7.161622 11.168185 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14741 SC 14.0 123721.136031 16400.863969 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.850269 3.065942 5.521461 7.524561 11.725785 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0
14742 SC 12.0 88181.600575 68.399425 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.387929 2.024846 1.386294 6.601230 11.387154 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14743 SC 11.0 68579.699653 21549.300347 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.408997 2.738613 4.709530 7.524561 11.135752 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14744 SC 11.0 79100.263771 -6873.263771 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.187569 0.447214 6.363028 5.811141 11.278471 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14745 SC 14.0 123231.023460 -8751.023460 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.648155 2.880972 4.110874 7.237778 11.721816 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14746 SC 10.0 70840.400546 -5103.400546 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.093417 3.033150 6.363028 6.663133 11.168185 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14747 SC 13.0 101243.170958 -9429.170958 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.427520 1.732051 5.056246 5.572154 11.525281 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14748 SC 12.0 82230.512591 15139.487409 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.486273 3.949684 5.575949 6.716595 11.317282 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14749 SC 15.0 149705.694175 8994.305825 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.974771 2.509980 5.521461 7.237778 11.916427 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0
14750 SC 12.0 86664.158633 4590.841367 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.421413 0.547723 3.367296 6.364751 11.369796 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14751 SC 15.0 149705.694175 8994.305825 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.974771 2.529822 5.521461 7.237778 11.916427 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0
14752 SC 14.0 132526.000000 7596.000000 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.850269 4.183300 0.693147 7.524561 11.794534 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14753 SC 12.0 82024.692725 12952.307275 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.461390 2.810694 4.709530 6.593045 11.314776 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14754 SC 11.0 79100.263771 8543.736229 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.381038 3.577709 6.363028 6.716595 11.278471 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14755 SC 13.0 102899.534346 15169.465654 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.679024 2.408319 4.852030 6.924612 11.541508 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14756 SC 13.0 104210.023553 -1267.023553 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.541931 4.604346 2.197225 6.603944 11.554164 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14757 SC 15.0 220806.750000 -119176.750000 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.529094 0.447214 5.525453 6.322565 12.305043 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0
14758 SC 11.0 70358.898088 8233.101912 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.272025 4.774935 4.605170 6.924612 11.161365 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14759 SC 11.0 68579.699653 -2266.699653 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.102141 0.836660 4.709530 6.144186 11.135752 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14760 SC 11.0 79100.263771 -14682.263771 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.073148 2.167948 6.363028 6.603944 11.278471 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14761 SC 11.0 68579.699653 4321.300347 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.196858 2.774887 4.709530 6.716595 11.135752 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14762 SC 13.0 106116.637459 -19866.637459 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.365005 2.121320 6.363028 6.663133 11.572294 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14763 SC 12.0 92736.988124 15935.011876 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.596089 3.847077 6.363028 7.524561 11.437523 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14764 SC 11.0 68579.699653 -4827.699653 45.0 12.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.062756 0.447214 4.709530 5.493061 11.135752 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14765 SC 14.0 126211.943693 13311.056307 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.845985 2.549510 4.852030 6.924612 11.745718 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14766 SC 13.0 106116.637459 -11520.637459 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.457370 1.000000 6.363028 6.663133 11.572294 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14767 SC 11.0 70358.898088 8233.101912 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.272025 3.834058 4.605170 6.924612 11.161365 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14768 SC 14.0 123721.136031 -14336.136031 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.602629 1.140175 5.521461 6.663133 11.725785 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0
14769 SC 14.0 191284.996653 -17714.996653 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 12.064336 2.489980 5.525453 6.924612 12.161520 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1
14770 SC 11.0 79100.263771 -14682.263771 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.073148 2.449490 6.363028 5.313206 11.278471 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14771 SC 11.0 68579.699653 3647.300347 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.187569 3.255764 4.709530 6.663133 11.135752 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14772 SC 9.0 56010.448864 -4381.448864 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 10.851839 2.213594 2.302585 7.172425 10.933294 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14773 SC 11.0 68766.790598 -4348.790598 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.073148 3.098387 2.197225 6.603944 11.138476 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14774 SC 7.0 68483.884615 453.115385 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.140948 0.547723 3.713572 7.172425 11.134354 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14775 SC 8.0 57091.339212 -3040.339212 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 10.897683 2.792848 4.852030 6.548219 10.952408 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14776 SC 13.0 103634.830709 -17384.830709 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.365005 1.000000 2.079442 6.663133 11.548629 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14777 SC 13.0 106116.637459 -22648.637459 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.332219 1.788854 6.363028 5.811141 11.572294 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14778 SC 9.0 60393.678745 3672.321255 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.067669 0.547723 3.850148 6.663133 11.008640 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14779 SC 10.0 70840.400546 -6880.400546 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.066013 1.000000 6.363028 5.811141 11.168185 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14780 SC 9.0 55536.787879 -2669.787879 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 10.875535 0.000000 1.098612 6.285998 10.924801 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1
14781 SC 15.0 149705.694175 8994.305825 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.974771 3.860052 5.521461 7.237778 11.916427 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0
14782 SC 11.0 79100.263771 -11520.263771 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.121067 2.073644 6.363028 6.255750 11.278471 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14783 SC 11.0 79100.263771 -442.263771 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.272865 2.701851 6.363028 6.548219 11.278471 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14784 SC 11.0 70358.898088 5772.101912 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.240211 2.509980 4.605170 6.354370 11.161365 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14785 SC 12.0 82024.692725 5636.307275 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.381232 2.073644 4.709530 7.524561 11.314776 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14786 SC 12.0 82024.692725 12178.307275 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.453207 5.079370 4.709530 7.172425 11.314776 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14787 SC 13.0 106116.637459 -8284.637459 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.491007 1.140175 6.363028 7.161622 11.572294 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14788 SC 12.0 92736.988124 -3935.988124 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.394153 3.847077 6.363028 6.354370 11.437523 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14789 SC 11.0 79100.263771 -10702.263771 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.133099 1.048809 6.363028 6.322565 11.278471 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14790 SC 12.0 144554.953704 -9554.953704 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.813030 0.707107 2.772589 6.548219 11.881415 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0
14791 SC 15.0 149705.694175 15169.305825 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 12.012943 2.932576 5.521461 7.172425 11.916427 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0
14792 SC 11.0 79100.263771 -8825.263771 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.160171 0.632456 6.363028 5.572154 11.278471 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14793 SC 13.0 98098.882963 -3502.882963 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.457370 3.114482 4.709530 6.013715 11.493731 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14794 SC 9.0 52638.589928 12302.410072 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.081234 2.509980 3.218876 7.524561 10.871205 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1
14795 SC 14.0 127403.579634 4964.420366 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.793341 5.176872 4.077537 6.924612 11.755115 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14796 SC 11.0 70358.898088 -83.898088 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.160171 5.412947 4.605170 7.172425 11.161365 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14797 SC 13.0 109912.503580 5666.496420 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.657710 5.329165 2.890372 6.001415 11.607440 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14798 SC 13.0 103267.301887 -11453.301887 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.427520 1.816590 1.386294 5.438079 11.545076 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14799 SC 12.0 86959.975696 4811.024304 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.427052 5.504544 4.127134 6.011267 11.373203 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14800 SC 11.0 79100.263771 -1222.263771 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.262899 2.000000 6.363028 7.161622 11.278471 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14801 SC 14.0 120594.342736 -2234.342736 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.681486 4.277850 5.056246 6.603944 11.700188 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14802 SC 13.0 102899.534346 5567.465654 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.594201 2.880972 4.852030 7.524561 11.541508 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1
14803 SC 12.0 82230.512591 9179.487409 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.423110 2.236068 5.575949 7.524561 11.317282 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14804 SC 13.0 105047.296509 -13233.296509 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.427520 3.316625 4.804021 6.603944 11.562166 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14805 SC 15.0 155755.535242 -4925.535242 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.923909 0.316228 5.525453 6.322565 11.956043 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1
14806 SC 12.0 87049.140351 -9836.140351 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.254323 1.000000 2.995732 6.364751 11.374228 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14807 SC 14.0 191284.996653 -22262.996653 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 12.037784 2.302173 5.525453 5.572154 12.161520 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0
14808 SC 12.0 85614.272727 11501.727273 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.483661 4.219005 3.496508 6.285998 11.357607 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14809 SC 12.0 82024.692725 2209.307275 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.341354 4.098780 4.709530 6.548219 11.314776 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14810 SC 10.0 67711.394247 4313.605753 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.184769 3.162278 3.850148 6.601230 11.123010 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14811 SC 11.0 79883.944848 928.055152 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.299881 1.732051 3.713572 7.172425 11.288330 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14812 SC 15.0 150765.631396 7934.368604 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.974771 3.521363 4.852030 6.924612 11.923482 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14813 SC 9.0 63564.446718 4190.553282 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.123654 2.236068 6.363028 5.493061 11.059810 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14814 SC 12.0 92736.988124 -17863.988124 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.223549 1.449138 6.363028 6.013715 11.437523 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14815 SC 13.0 99172.922519 18896.077481 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.679024 2.213594 5.575949 7.237778 11.504620 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14816 SC 11.0 77439.725728 -1428.725728 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.238633 2.664583 3.555348 6.593045 11.257255 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14817 SC 9.0 55386.370000 -4359.370000 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 10.840110 3.591657 3.988984 6.354370 10.922089 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14818 SC 12.0 83907.539514 508.460486 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.343512 2.121320 4.682131 7.161622 11.337471 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14819 SC 8.0 57091.339212 -6085.339212 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 10.839699 1.303840 4.852030 6.603944 10.952408 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14820 SC 12.0 92736.988124 4267.011876 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.482507 2.626785 6.363028 6.255750 11.437523 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14821 SC 12.0 82024.692725 -130.692725 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.313181 3.507136 4.709530 6.274762 11.314776 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14822 SC 9.0 53549.699170 -936.699170 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 10.870719 0.948683 4.682131 5.891644 10.888365 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0
14823 SC 12.0 83793.716763 2212.283237 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.362172 2.607681 2.995732 7.524561 11.336113 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14824 SC 15.0 151253.086498 -3965.086498 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.900145 2.190890 4.804021 7.172425 11.926710 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0
14825 SC 11.0 68579.699653 7551.300347 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.240211 2.236068 4.709530 4.709530 11.135752 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14826 SC 9.0 75003.755877 1339.244123 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.242992 0.707107 3.713572 6.663133 11.225293 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14827 SC 11.0 69488.327856 -1166.327856 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.131987 3.065942 4.304065 7.161622 11.148914 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14828 SC 11.0 70814.195513 12612.804487 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.331727 3.346640 2.302585 6.144186 11.167815 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1
14829 SC 9.0 55821.734185 -3153.734185 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 10.871763 2.408319 4.605170 6.924612 10.929919 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14830 SC 12.0 85106.739617 -10233.739617 50.0 7.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.223549 2.701851 4.605170 7.172425 11.351662 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14831 SC 13.0 101243.170958 1699.829042 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.541931 0.948683 5.056246 6.593045 11.525281 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14832 SC 11.0 63592.893443 -5030.893443 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 10.977841 0.000000 2.639057 6.011267 11.060257 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1
14833 SC 12.0 92736.988124 -10260.988124 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.320263 0.894427 6.363028 7.172425 11.437523 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14834 SC 14.0 124044.275492 -13142.275492 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.616402 1.224745 4.304065 7.237778 11.728394 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1
14835 SC 11.0 68579.699653 -8065.699653 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.010630 1.341641 4.709530 5.811141 11.135752 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14836 SC 15.0 220806.750000 -33624.750000 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 12.139837 2.258318 5.525453 6.001415 12.305043 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0
14837 SC 9.0 56537.896671 -6521.896671 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 10.820098 2.236068 4.304065 7.172425 10.942666 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14838 SC 9.0 75003.755877 1339.244123 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.242992 1.341641 3.713572 7.172425 11.225293 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14839 SC 15.0 149938.117647 8761.882353 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.974771 2.469818 0.693147 7.237778 11.917978 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14840 SC 14.0 191284.996653 6754.003347 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 12.196219 1.816590 5.525453 6.924612 12.161520 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1
14841 SC 10.0 70840.400546 -2365.400546 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.134224 3.301515 6.363028 6.548219 11.168185 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14842 SC 12.0 92736.988124 -22544.988124 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.158990 1.581139 6.363028 5.572154 11.437523 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14843 SC 12.0 85699.737850 -1465.737850 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.341354 2.966479 3.850148 7.161622 11.358605 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14844 SC 9.0 60393.678745 -8103.678745 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 10.864560 3.361547 3.850148 6.144186 11.008640 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14845 SC 13.0 106942.574648 11126.425352 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.679024 2.645751 4.804021 6.924612 11.580047 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0
14846 SC 12.0 80439.445814 243.554186 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.298283 3.193744 5.521461 6.364751 11.295260 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0
14847 SC 13.0 99740.024631 420.975369 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.514534 3.271085 2.397895 5.313206 11.510322 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14848 SC 11.0 79100.263771 4259.736229 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.330924 1.000000 6.363028 6.548219 11.278471 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14849 SC 12.0 83930.539259 -11397.539259 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.191797 1.378405 4.304065 6.663133 11.337745 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0
14850 SC 11.0 65335.534091 -6773.534091 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 10.977841 1.048809 3.891820 5.438079 11.087291 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0
14851 SC 12.0 82024.692725 -7151.692725 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.223549 1.140175 4.709530 6.603944 11.314776 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14852 SC 12.0 83145.080000 -5932.080000 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.254323 3.987480 1.791759 6.013715 11.328342 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14853 SC 14.0 132526.000000 7596.000000 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.850269 3.146427 0.693147 7.524561 11.794534 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14854 SC 12.0 117199.743701 -12663.743701 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.557287 0.547723 4.043051 7.172425 11.671635 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14855 SC 11.0 79883.944848 928.055152 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.299881 1.095445 3.713572 7.172425 11.288330 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14856 SC 10.0 70840.400546 -12209.400546 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 10.979019 2.323790 6.363028 5.697093 11.168185 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14857 SC 13.0 100997.389081 -10514.389081 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.412917 2.792848 3.555348 5.846439 11.522850 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14858 SC 9.0 63564.446718 -9861.446718 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 10.891224 1.048809 6.363028 7.161622 11.059810 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14859 SC 14.0 130040.356529 15513.643471 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.888302 5.157519 3.713572 7.161622 11.775600 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14860 SC 11.0 73378.557153 5213.442847 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.272025 4.888763 3.850148 6.924612 11.203387 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14861 SC 13.0 105724.708136 -5998.708136 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.510182 2.323790 3.828641 6.354370 11.568594 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14862 SC 10.0 70840.400546 5159.599454 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.238489 2.569047 6.363028 7.161622 11.168185 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14863 SC 11.0 63592.893443 -5030.893443 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 10.977841 0.000000 2.639057 6.354370 11.060257 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1
14864 SC 11.0 64211.566372 206.433628 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.073148 0.836660 3.555348 5.313206 11.069939 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14865 SC 12.0 82024.692725 -11832.692725 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.158990 0.547723 4.709530 5.811141 11.314776 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14866 SC 13.0 104862.598015 -958.598015 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.551223 2.509980 2.639057 6.716595 11.560406 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14867 SC 13.0 101243.170958 7263.829042 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.594570 2.792848 5.056246 6.255750 11.525281 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14868 SC 13.0 103228.144628 7247.855372 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.612554 5.069517 2.484907 6.364751 11.544697 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14869 SC 9.0 63564.446718 8485.553282 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.185116 4.159327 6.363028 6.548219 11.059810 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14870 SC 13.0 101243.170958 7263.829042 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.594570 2.190890 5.056246 5.252273 11.525281 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14871 SC 11.0 79100.263771 -18586.263771 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.010630 1.000000 6.363028 6.603944 11.278471 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14872 SC 13.0 106229.657976 -14762.657976 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.423734 2.073644 3.496508 6.144186 11.573359 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14873 SC 14.0 126574.859673 5793.140327 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.793341 3.193744 3.135494 6.924612 11.748589 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14874 SC 15.0 151062.124675 -7983.124675 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.871152 1.000000 3.555348 7.172425 11.925446 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14875 SC 11.0 70501.568442 1252.431558 55.0 2.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.180999 1.949359 4.852030 7.524561 11.163390 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14876 SC 11.0 70814.195513 -8348.195513 60.0 -3.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.042378 2.701851 2.302585 6.322565 11.167815 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14877 SC 11.0 69488.327856 916.672144 60.0 -3.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.162020 1.449138 4.304065 6.274762 11.148914 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14878 SC 13.0 101243.170958 6325.829042 60.0 -3.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.585888 1.000000 5.056246 6.364751 11.525281 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14879 SC 14.0 191284.996653 4831.003347 60.0 -3.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 12.186462 0.948683 5.525453 7.161622 12.161520 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0
14880 SC 14.0 136602.302053 2920.697947 60.0 -3.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.845985 1.549193 4.043051 6.924612 11.824829 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14881 SC 11.0 68579.699653 9994.300347 60.0 -3.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.271796 0.632456 4.709530 7.524561 11.135752 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14882 SC 11.0 79991.562780 24316.437220 60.0 -3.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.555103 1.760682 2.995732 7.524561 11.289676 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14883 SC 10.0 70840.400546 6998.599454 60.0 -3.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.262398 0.707107 6.363028 7.161622 11.168185 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14884 SC 11.0 66483.015974 1838.984026 60.0 -3.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.131987 2.529822 5.056246 7.161622 11.104702 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14885 SC 14.0 125438.927273 -23517.927273 60.0 -3.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.531953 1.095445 2.079442 6.601230 11.739574 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14886 SC 12.0 86109.914894 -15917.914894 60.0 -3.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.158990 0.948683 3.828641 6.663133 11.363380 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14887 SC 9.0 55821.734185 -5805.734185 60.0 -3.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 10.820098 6.041523 4.605170 5.811141 10.929919 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1
14888 SC 11.0 69409.643631 -4991.643631 60.0 -3.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.073148 1.897367 3.806662 7.161622 11.147781 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14889 SC 12.0 117199.743701 -363.743701 60.0 -3.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.668527 3.114482 4.043051 6.663133 11.671635 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14890 SC 15.0 146468.283688 2564.716312 60.0 -3.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.911923 2.366432 2.397895 5.318120 11.894564 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14891 SC 13.0 101243.170958 -1894.170958 60.0 -3.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.506394 2.302173 5.056246 7.172425 11.525281 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14892 SC 15.0 149852.966062 5852.033938 60.0 -3.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.955718 3.435113 4.804021 7.172425 11.917410 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14893 SC 12.0 80439.445814 10815.554186 60.0 -3.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.421413 3.301515 5.521461 6.322565 11.295260 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1
14894 SC 11.0 68579.699653 -10017.699653 60.0 -3.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 10.977841 0.316228 4.709530 4.499810 11.135752 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14895 SC 13.0 101243.170958 -6647.170958 60.0 -3.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.457370 2.097618 5.056246 6.274762 11.525281 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14896 SC 11.0 69488.327856 -5070.327856 60.0 -3.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.073148 2.509980 4.304065 4.204693 11.148914 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14897 SC 11.0 67203.914815 -7574.914815 60.0 -3.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 10.995897 0.894427 4.110874 6.255750 11.115487 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14898 SC 11.0 79100.263771 1761.736229 60.0 -3.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.300499 3.549648 6.363028 7.161622 11.278471 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14899 SC 11.0 69858.552128 6272.447872 60.0 -3.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.240211 2.756810 3.713572 6.011267 11.154228 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14900 SC 12.0 85317.482394 13978.517606 60.0 -3.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.505861 1.048809 4.852030 6.924612 11.354135 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1
14901 SC 11.0 68579.699653 -4161.699653 60.0 -3.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.073148 2.366432 4.709530 7.161622 11.135752 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14902 SC 11.0 70501.568442 5629.431558 60.0 -3.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.240211 5.567764 4.852030 5.572154 11.163390 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14903 SC 9.0 63564.446718 -13548.446718 60.0 -3.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 10.820098 1.048809 6.363028 6.322565 11.059810 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14904 SC 10.0 67711.394247 -10856.394247 60.0 -3.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 10.948259 0.894427 3.850148 6.548219 11.123010 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14905 SC 7.0 45578.500000 5858.500000 65.0 -8.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 10.848113 2.738613 1.098612 7.524561 10.727191 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14906 SC 12.0 82024.692725 9230.307275 65.0 -8.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.421413 0.547723 4.709530 4.406719 11.314776 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14907 SC 13.0 99688.928913 8818.071087 65.0 -8.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.594570 4.764452 5.521461 7.161622 11.509810 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0
14908 SC 11.0 63592.893443 -5030.893443 65.0 -8.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 10.977841 0.000000 2.639057 5.438079 11.060257 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1
14909 SC 12.0 82024.692725 -11832.692725 65.0 -8.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.158990 2.144761 4.709530 5.313206 11.314776 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14910 SC 15.0 220806.750000 -28201.750000 65.0 -8.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 12.168397 2.428992 5.525453 7.524561 12.305043 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0
14911 SC 11.0 68579.699653 -8065.699653 65.0 -8.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.010630 1.702939 4.709530 7.524561 11.135752 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1
14912 SC 12.0 92736.988124 6559.011876 65.0 -8.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.505861 3.376389 6.363028 6.924612 11.437523 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14913 SC 11.0 138109.540541 41890.459459 65.0 -8.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 12.100712 0.316228 2.772589 6.144186 11.835802 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1
14914 SC 11.0 79991.562780 -3860.562780 65.0 -8.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.240211 1.816590 2.995732 6.603944 11.289676 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14915 SC 11.0 79100.263771 20195.736229 65.0 -8.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.505861 1.949359 6.363028 7.172425 11.278471 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14916 SC 14.0 123721.136031 2604.863969 65.0 -8.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.746621 4.827007 5.521461 6.255750 11.725785 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0
14917 SC 12.0 82024.692725 -4811.692725 65.0 -8.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.254323 1.732051 4.709530 6.603944 11.314776 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0
14918 SC 13.0 104008.710145 14060.289855 65.0 -8.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 11.679024 2.073644 1.791759 6.924612 11.552230 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0
14919 SC 9.0 51761.995546 -1745.995546 65.0 -8.0 0.4 0.5 38 1.9 12 14 55 0.4 12 1.4 10.820098 1.140175 4.709530 6.322565 10.854411 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0

14920 rows × 98 columns

Perform logistic regression with intent to extract only most important features

In [157]:
%%R

vars <- unlist(fullColumns)
vars <- vars[-c(94,95)]
#print(vars)
fla <- paste("SEP ~", paste(vars, collapse="+"))
fla <- as.formula(fla)

OPMAnalysisDataNoFamBinary$SEP <- as.vector(y)
BinLogit <- glm(fla, data = OPMAnalysisDataNoFamBinary, family = "binomial")
summary(BinLogit)
Call:
glm(formula = fla, family = "binomial", data = OPMAnalysisDataNoFamBinary)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-3.0182  -0.6661  -0.1038   0.7300   3.3486  

Coefficients: (8 not defined because of singularities)
                                Estimate Std. Error z value Pr(>|z|)    
(Intercept)                   -3.273e+01  6.386e+00  -5.125 2.97e-07 ***
GSEGRD                        -5.811e-01  4.736e-02 -12.270  < 2e-16 ***
IndAvgSalary                  -1.229e-05  4.672e-06  -2.630 0.008545 ** 
SalaryOverUnderIndAvg         -1.798e-06  6.633e-06  -0.271 0.786282    
LowerLimitAge                 -5.646e-02  2.694e-02  -2.096 0.036085 *  
YearsToRetirement                     NA         NA      NA       NA    
BLS_FEDERAL_OtherSep_Rate      5.803e+01  6.254e+00   9.279  < 2e-16 ***
BLS_FEDERAL_Quits_Rate         1.089e+02  9.746e+00  11.178  < 2e-16 ***
BLS_FEDERAL_TotalSep_Level    -3.277e-01  2.734e-01  -1.198 0.230735    
BLS_FEDERAL_JobOpenings_Rate  -2.227e+01  5.998e+00  -3.713 0.000205 ***
BLS_FEDERAL_OtherSep_Level    -1.462e+00  1.327e-01 -11.023  < 2e-16 ***
BLS_FEDERAL_Quits_Level       -2.072e+00  3.386e-01  -6.118 9.49e-10 ***
BLS_FEDERAL_JobOpenings_Level  7.239e-01  2.008e-01   3.605 0.000312 ***
BLS_FEDERAL_Layoffs_Rate      -6.068e+01  4.466e+00 -13.585  < 2e-16 ***
BLS_FEDERAL_Layoffs_Level      3.960e+00  3.955e-01  10.013  < 2e-16 ***
BLS_FEDERAL_TotalSep_Rate     -3.096e+01  3.016e+00 -10.263  < 2e-16 ***
SALARYLog                      3.755e-01  7.039e-01   0.533 0.593689    
LOSSqrt                       -7.742e-01  2.430e-02 -31.863  < 2e-16 ***
SEPCount_EFDATE_OCCLog        -5.877e-02  1.697e-02  -3.463 0.000534 ***
SEPCount_EFDATE_LOCLog        -4.532e-01  1.305e-01  -3.474 0.000513 ***
IndAvgSalaryLog                4.161e+00  8.560e-01   4.861 1.17e-06 ***
AGELVL_B1                     -9.866e-01  1.154e+00  -0.855 0.392526    
AGELVL_C1                     -3.741e-01  9.996e-01  -0.374 0.708224    
AGELVL_D1                     -1.535e-01  8.643e-01  -0.178 0.859011    
AGELVL_E1                      1.699e-01  7.306e-01   0.233 0.816125    
AGELVL_F1                      4.260e-01  5.976e-01   0.713 0.475969    
AGELVL_G1                      7.197e-01  4.653e-01   1.547 0.121961    
AGELVL_H1                      8.788e-01  3.344e-01   2.628 0.008586 ** 
AGELVL_I1                      7.511e-01  2.081e-01   3.609 0.000307 ***
AGELVL_J1                             NA         NA      NA       NA    
AGELVL_K1                             NA         NA      NA       NA    
LOC_011                        4.648e-02  4.144e-01   0.112 0.910704    
LOC_021                        1.706e-01  4.498e-01   0.379 0.704477    
LOC_041                        8.845e-01  4.196e-01   2.108 0.035044 *  
LOC_051                        1.275e-01  4.344e-01   0.293 0.769216    
LOC_061                        1.442e+00  4.987e-01   2.891 0.003839 ** 
LOC_081                        6.195e-01  4.240e-01   1.461 0.144057    
LOC_091                       -4.799e-01  4.989e-01  -0.962 0.336083    
LOC_101                       -5.719e-01  7.195e-01  -0.795 0.426650    
LOC_111                        8.543e-01  4.826e-01   1.770 0.076687 .  
LOC_121                        7.306e-01  4.375e-01   1.670 0.094945 .  
LOC_131                        7.676e-01  4.281e-01   1.793 0.072989 .  
LOC_151                       -1.256e-02  4.057e-01  -0.031 0.975296    
LOC_161                        1.041e-01  4.578e-01   0.227 0.820080    
LOC_171                        2.223e-01  4.186e-01   0.531 0.595280    
LOC_181                       -4.071e-02  4.451e-01  -0.091 0.927127    
LOC_191                        2.682e-03  4.944e-01   0.005 0.995671    
LOC_201                        7.133e-01  4.503e-01   1.584 0.113183    
LOC_211                        1.217e-01  4.246e-01   0.287 0.774316    
LOC_221                       -6.172e-02  4.211e-01  -0.147 0.883470    
LOC_231                        3.209e-02  5.059e-01   0.063 0.949416    
LOC_241                        7.031e-01  4.569e-01   1.539 0.123862    
LOC_251                        3.305e-01  4.194e-01   0.788 0.430683    
LOC_261                        1.607e-01  4.227e-01   0.380 0.703828    
LOC_271                        5.177e-01  4.434e-01   1.167 0.243021    
LOC_281                        1.093e-01  4.415e-01   0.248 0.804456    
LOC_291                        2.000e-01  4.369e-01   0.458 0.647037    
LOC_301                        7.146e-01  4.403e-01   1.623 0.104571    
LOC_311                       -1.000e-01  4.964e-01  -0.201 0.840309    
LOC_321                        2.666e-01  4.461e-01   0.598 0.550173    
LOC_331                       -2.684e-01  6.484e-01  -0.414 0.678872    
LOC_341                        1.309e-03  4.192e-01   0.003 0.997509    
LOC_351                        7.471e-01  4.073e-01   1.834 0.066598 .  
LOC_361                        5.629e-01  4.389e-01   1.283 0.199644    
LOC_371                        5.401e-01  4.225e-01   1.278 0.201079    
LOC_381                        3.165e-01  5.209e-01   0.608 0.543487    
LOC_391                        2.746e-01  4.189e-01   0.656 0.512098    
LOC_401                        4.496e-01  4.136e-01   1.087 0.276969    
LOC_411                        4.721e-01  4.301e-01   1.097 0.272440    
LOC_421                        2.419e-01  4.348e-01   0.556 0.577926    
LOC_441                       -3.547e-01  6.673e-01  -0.531 0.595110    
LOC_451                        1.987e-01  4.303e-01   0.462 0.644247    
LOC_461                        5.412e-01  4.460e-01   1.213 0.224988    
LOC_471                        4.890e-02  4.352e-01   0.112 0.910533    
LOC_481                        1.274e+00  4.777e-01   2.667 0.007645 ** 
LOC_491                        2.330e-01  4.340e-01   0.537 0.591254    
LOC_501                       -4.656e-01  7.116e-01  -0.654 0.512947    
LOC_511                        6.192e-01  4.712e-01   1.314 0.188832    
LOC_531                        9.418e-01  4.322e-01   2.179 0.029305 *  
LOC_541                       -9.854e-02  4.546e-01  -0.217 0.828404    
LOC_551                       -2.589e-01  4.460e-01  -0.581 0.561521    
LOC_561                               NA         NA      NA       NA    
TOA_101                       -1.148e+00  2.081e-01  -5.516 3.48e-08 ***
TOA_151                       -1.079e+00  2.131e-01  -5.061 4.16e-07 ***
TOA_201                        1.575e-02  2.801e-01   0.056 0.955171    
TOA_301                       -7.135e-01  2.237e-01  -3.189 0.001426 ** 
TOA_321                       -3.497e-01  7.998e-01  -0.437 0.661924    
TOA_351                       -1.503e+00  3.611e-01  -4.161 3.17e-05 ***
TOA_381                       -7.468e-01  2.136e-01  -3.496 0.000472 ***
TOA_401                       -1.049e+00  2.706e-01  -3.878 0.000105 ***
TOA_421                        6.479e-02  4.898e-01   0.132 0.894753    
TOA_441                        1.318e+00  1.131e+00   1.165 0.243998    
TOA_451                        8.104e+00  1.392e+02   0.058 0.953584    
TOA_481                               NA         NA      NA       NA    
PPGROUP_111                    3.799e-01  1.581e-01   2.403 0.016261 *  
PPGROUP_121                           NA         NA      NA       NA    
TOATYP_11                             NA         NA      NA       NA    
TOATYP_21                             NA         NA      NA       NA    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 20683  on 14919  degrees of freedom
Residual deviance: 13443  on 14830  degrees of freedom
AIC: 13623

Number of Fisher Scoring iterations: 10

In [158]:
%%R
alias(BinLogit)
Model :
SEP ~ GSEGRD + IndAvgSalary + SalaryOverUnderIndAvg + LowerLimitAge + 
    YearsToRetirement + BLS_FEDERAL_OtherSep_Rate + BLS_FEDERAL_Quits_Rate + 
    BLS_FEDERAL_TotalSep_Level + BLS_FEDERAL_JobOpenings_Rate + 
    BLS_FEDERAL_OtherSep_Level + BLS_FEDERAL_Quits_Level + BLS_FEDERAL_JobOpenings_Level + 
    BLS_FEDERAL_Layoffs_Rate + BLS_FEDERAL_Layoffs_Level + BLS_FEDERAL_TotalSep_Rate + 
    SALARYLog + LOSSqrt + SEPCount_EFDATE_OCCLog + SEPCount_EFDATE_LOCLog + 
    IndAvgSalaryLog + AGELVL_B + AGELVL_C + AGELVL_D + AGELVL_E + 
    AGELVL_F + AGELVL_G + AGELVL_H + AGELVL_I + AGELVL_J + AGELVL_K + 
    LOC_01 + LOC_02 + LOC_04 + LOC_05 + LOC_06 + LOC_08 + LOC_09 + 
    LOC_10 + LOC_11 + LOC_12 + LOC_13 + LOC_15 + LOC_16 + LOC_17 + 
    LOC_18 + LOC_19 + LOC_20 + LOC_21 + LOC_22 + LOC_23 + LOC_24 + 
    LOC_25 + LOC_26 + LOC_27 + LOC_28 + LOC_29 + LOC_30 + LOC_31 + 
    LOC_32 + LOC_33 + LOC_34 + LOC_35 + LOC_36 + LOC_37 + LOC_38 + 
    LOC_39 + LOC_40 + LOC_41 + LOC_42 + LOC_44 + LOC_45 + LOC_46 + 
    LOC_47 + LOC_48 + LOC_49 + LOC_50 + LOC_51 + LOC_53 + LOC_54 + 
    LOC_55 + LOC_56 + TOA_10 + TOA_15 + TOA_20 + TOA_30 + TOA_32 + 
    TOA_35 + TOA_38 + TOA_40 + TOA_42 + TOA_44 + TOA_45 + TOA_48 + 
    PPGROUP_11 + PPGROUP_12 + TOATYP_1 + TOATYP_2

Complete :
                  (Intercept) GSEGRD IndAvgSalary SalaryOverUnderIndAvg
YearsToRetirement   57           0      0            0                 
AGELVL_J1           13           0      0            0                 
AGELVL_K1          -12           0      0            0                 
LOC_561              1           0      0            0                 
TOA_481              1           0      0            0                 
PPGROUP_121          1           0      0            0                 
TOATYP_11            0           0      0            0                 
TOATYP_21            1           0      0            0                 
                  LowerLimitAge BLS_FEDERAL_OtherSep_Rate
YearsToRetirement   -1             0                     
AGELVL_J1         -1/5             0                     
AGELVL_K1          1/5             0                     
LOC_561              0             0                     
TOA_481              0             0                     
PPGROUP_121          0             0                     
TOATYP_11            0             0                     
TOATYP_21            0             0                     
                  BLS_FEDERAL_Quits_Rate BLS_FEDERAL_TotalSep_Level
YearsToRetirement    0                      0                      
AGELVL_J1            0                      0                      
AGELVL_K1            0                      0                      
LOC_561              0                      0                      
TOA_481              0                      0                      
PPGROUP_121          0                      0                      
TOATYP_11            0                      0                      
TOATYP_21            0                      0                      
                  BLS_FEDERAL_JobOpenings_Rate BLS_FEDERAL_OtherSep_Level
YearsToRetirement    0                            0                      
AGELVL_J1            0                            0                      
AGELVL_K1            0                            0                      
LOC_561              0                            0                      
TOA_481              0                            0                      
PPGROUP_121          0                            0                      
TOATYP_11            0                            0                      
TOATYP_21            0                            0                      
                  BLS_FEDERAL_Quits_Level BLS_FEDERAL_JobOpenings_Level
YearsToRetirement    0                       0                         
AGELVL_J1            0                       0                         
AGELVL_K1            0                       0                         
LOC_561              0                       0                         
TOA_481              0                       0                         
PPGROUP_121          0                       0                         
TOATYP_11            0                       0                         
TOATYP_21            0                       0                         
                  BLS_FEDERAL_Layoffs_Rate BLS_FEDERAL_Layoffs_Level
YearsToRetirement    0                        0                     
AGELVL_J1            0                        0                     
AGELVL_K1            0                        0                     
LOC_561              0                        0                     
TOA_481              0                        0                     
PPGROUP_121          0                        0                     
TOATYP_11            0                        0                     
TOATYP_21            0                        0                     
                  BLS_FEDERAL_TotalSep_Rate SALARYLog LOSSqrt
YearsToRetirement    0                         0         0   
AGELVL_J1            0                         0         0   
AGELVL_K1            0                         0         0   
LOC_561              0                         0         0   
TOA_481              0                         0         0   
PPGROUP_121          0                         0         0   
TOATYP_11            0                         0         0   
TOATYP_21            0                         0         0   
                  SEPCount_EFDATE_OCCLog SEPCount_EFDATE_LOCLog IndAvgSalaryLog
YearsToRetirement    0                      0                      0           
AGELVL_J1            0                      0                      0           
AGELVL_K1            0                      0                      0           
LOC_561              0                      0                      0           
TOA_481              0                      0                      0           
PPGROUP_121          0                      0                      0           
TOATYP_11            0                      0                      0           
TOATYP_21            0                      0                      0           
                  AGELVL_B1 AGELVL_C1 AGELVL_D1 AGELVL_E1 AGELVL_F1 AGELVL_G1
YearsToRetirement    0         0         0         0         0         0     
AGELVL_J1           -9        -8        -7        -6        -5        -4     
AGELVL_K1            8         7         6         5         4         3     
LOC_561              0         0         0         0         0         0     
TOA_481              0         0         0         0         0         0     
PPGROUP_121          0         0         0         0         0         0     
TOATYP_11            0         0         0         0         0         0     
TOATYP_21            0         0         0         0         0         0     
                  AGELVL_H1 AGELVL_I1 LOC_011 LOC_021 LOC_041 LOC_051 LOC_061
YearsToRetirement    0         0         0       0       0       0       0   
AGELVL_J1           -3        -2         0       0       0       0       0   
AGELVL_K1            2         1         0       0       0       0       0   
LOC_561              0         0        -1      -1      -1      -1      -1   
TOA_481              0         0         0       0       0       0       0   
PPGROUP_121          0         0         0       0       0       0       0   
TOATYP_11            0         0         0       0       0       0       0   
TOATYP_21            0         0         0       0       0       0       0   
                  LOC_081 LOC_091 LOC_101 LOC_111 LOC_121 LOC_131 LOC_151
YearsToRetirement    0       0       0       0       0       0       0   
AGELVL_J1            0       0       0       0       0       0       0   
AGELVL_K1            0       0       0       0       0       0       0   
LOC_561             -1      -1      -1      -1      -1      -1      -1   
TOA_481              0       0       0       0       0       0       0   
PPGROUP_121          0       0       0       0       0       0       0   
TOATYP_11            0       0       0       0       0       0       0   
TOATYP_21            0       0       0       0       0       0       0   
                  LOC_161 LOC_171 LOC_181 LOC_191 LOC_201 LOC_211 LOC_221
YearsToRetirement    0       0       0       0       0       0       0   
AGELVL_J1            0       0       0       0       0       0       0   
AGELVL_K1            0       0       0       0       0       0       0   
LOC_561             -1      -1      -1      -1      -1      -1      -1   
TOA_481              0       0       0       0       0       0       0   
PPGROUP_121          0       0       0       0       0       0       0   
TOATYP_11            0       0       0       0       0       0       0   
TOATYP_21            0       0       0       0       0       0       0   
                  LOC_231 LOC_241 LOC_251 LOC_261 LOC_271 LOC_281 LOC_291
YearsToRetirement    0       0       0       0       0       0       0   
AGELVL_J1            0       0       0       0       0       0       0   
AGELVL_K1            0       0       0       0       0       0       0   
LOC_561             -1      -1      -1      -1      -1      -1      -1   
TOA_481              0       0       0       0       0       0       0   
PPGROUP_121          0       0       0       0       0       0       0   
TOATYP_11            0       0       0       0       0       0       0   
TOATYP_21            0       0       0       0       0       0       0   
                  LOC_301 LOC_311 LOC_321 LOC_331 LOC_341 LOC_351 LOC_361
YearsToRetirement    0       0       0       0       0       0       0   
AGELVL_J1            0       0       0       0       0       0       0   
AGELVL_K1            0       0       0       0       0       0       0   
LOC_561             -1      -1      -1      -1      -1      -1      -1   
TOA_481              0       0       0       0       0       0       0   
PPGROUP_121          0       0       0       0       0       0       0   
TOATYP_11            0       0       0       0       0       0       0   
TOATYP_21            0       0       0       0       0       0       0   
                  LOC_371 LOC_381 LOC_391 LOC_401 LOC_411 LOC_421 LOC_441
YearsToRetirement    0       0       0       0       0       0       0   
AGELVL_J1            0       0       0       0       0       0       0   
AGELVL_K1            0       0       0       0       0       0       0   
LOC_561             -1      -1      -1      -1      -1      -1      -1   
TOA_481              0       0       0       0       0       0       0   
PPGROUP_121          0       0       0       0       0       0       0   
TOATYP_11            0       0       0       0       0       0       0   
TOATYP_21            0       0       0       0       0       0       0   
                  LOC_451 LOC_461 LOC_471 LOC_481 LOC_491 LOC_501 LOC_511
YearsToRetirement    0       0       0       0       0       0       0   
AGELVL_J1            0       0       0       0       0       0       0   
AGELVL_K1            0       0       0       0       0       0       0   
LOC_561             -1      -1      -1      -1      -1      -1      -1   
TOA_481              0       0       0       0       0       0       0   
PPGROUP_121          0       0       0       0       0       0       0   
TOATYP_11            0       0       0       0       0       0       0   
TOATYP_21            0       0       0       0       0       0       0   
                  LOC_531 LOC_541 LOC_551 TOA_101 TOA_151 TOA_201 TOA_301
YearsToRetirement    0       0       0       0       0       0       0   
AGELVL_J1            0       0       0       0       0       0       0   
AGELVL_K1            0       0       0       0       0       0       0   
LOC_561             -1      -1      -1       0       0       0       0   
TOA_481              0       0       0      -1      -1      -1      -1   
PPGROUP_121          0       0       0       0       0       0       0   
TOATYP_11            0       0       0       1       1       0       1   
TOATYP_21            0       0       0      -1      -1       0      -1   
                  TOA_321 TOA_351 TOA_381 TOA_401 TOA_421 TOA_441 TOA_451
YearsToRetirement    0       0       0       0       0       0       0   
AGELVL_J1            0       0       0       0       0       0       0   
AGELVL_K1            0       0       0       0       0       0       0   
LOC_561              0       0       0       0       0       0       0   
TOA_481             -1      -1      -1      -1      -1      -1      -1   
PPGROUP_121          0       0       0       0       0       0       0   
TOATYP_11            1       1       1       0       0       0       0   
TOATYP_21           -1      -1      -1       0       0       0       0   
                  PPGROUP_111
YearsToRetirement    0       
AGELVL_J1            0       
AGELVL_K1            0       
LOC_561              0       
TOA_481              0       
PPGROUP_121         -1       
TOATYP_11            0       
TOATYP_21            0       

In [159]:
%%R
tmp <- alias(BinLogit)$Complete
print(attributes(tmp))
aliased <- dimnames(tmp)[[1]]
$dim
[1]  8 90

$dimnames
$dimnames[[1]]
[1] "YearsToRetirement" "AGELVL_J1"         "AGELVL_K1"        
[4] "LOC_561"           "TOA_481"           "PPGROUP_121"      
[7] "TOATYP_11"         "TOATYP_21"        

$dimnames[[2]]
 [1] "(Intercept)"                   "GSEGRD"                       
 [3] "IndAvgSalary"                  "SalaryOverUnderIndAvg"        
 [5] "LowerLimitAge"                 "BLS_FEDERAL_OtherSep_Rate"    
 [7] "BLS_FEDERAL_Quits_Rate"        "BLS_FEDERAL_TotalSep_Level"   
 [9] "BLS_FEDERAL_JobOpenings_Rate"  "BLS_FEDERAL_OtherSep_Level"   
[11] "BLS_FEDERAL_Quits_Level"       "BLS_FEDERAL_JobOpenings_Level"
[13] "BLS_FEDERAL_Layoffs_Rate"      "BLS_FEDERAL_Layoffs_Level"    
[15] "BLS_FEDERAL_TotalSep_Rate"     "SALARYLog"                    
[17] "LOSSqrt"                       "SEPCount_EFDATE_OCCLog"       
[19] "SEPCount_EFDATE_LOCLog"        "IndAvgSalaryLog"              
[21] "AGELVL_B1"                     "AGELVL_C1"                    
[23] "AGELVL_D1"                     "AGELVL_E1"                    
[25] "AGELVL_F1"                     "AGELVL_G1"                    
[27] "AGELVL_H1"                     "AGELVL_I1"                    
[29] "LOC_011"                       "LOC_021"                      
[31] "LOC_041"                       "LOC_051"                      
[33] "LOC_061"                       "LOC_081"                      
[35] "LOC_091"                       "LOC_101"                      
[37] "LOC_111"                       "LOC_121"                      
[39] "LOC_131"                       "LOC_151"                      
[41] "LOC_161"                       "LOC_171"                      
[43] "LOC_181"                       "LOC_191"                      
[45] "LOC_201"                       "LOC_211"                      
[47] "LOC_221"                       "LOC_231"                      
[49] "LOC_241"                       "LOC_251"                      
[51] "LOC_261"                       "LOC_271"                      
[53] "LOC_281"                       "LOC_291"                      
[55] "LOC_301"                       "LOC_311"                      
[57] "LOC_321"                       "LOC_331"                      
[59] "LOC_341"                       "LOC_351"                      
[61] "LOC_361"                       "LOC_371"                      
[63] "LOC_381"                       "LOC_391"                      
[65] "LOC_401"                       "LOC_411"                      
[67] "LOC_421"                       "LOC_441"                      
[69] "LOC_451"                       "LOC_461"                      
[71] "LOC_471"                       "LOC_481"                      
[73] "LOC_491"                       "LOC_501"                      
[75] "LOC_511"                       "LOC_531"                      
[77] "LOC_541"                       "LOC_551"                      
[79] "TOA_101"                       "TOA_151"                      
[81] "TOA_201"                       "TOA_301"                      
[83] "TOA_321"                       "TOA_351"                      
[85] "TOA_381"                       "TOA_401"                      
[87] "TOA_421"                       "TOA_441"                      
[89] "TOA_451"                       "PPGROUP_111"                  


$fracs
  [1] "57"   "13"   "-12"  "1"    "1"    "1"    "0"    "1"    "0"    "0"   
 [11] "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"   
 [21] "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"   
 [31] "0"    "0"    "-1"   "-1/5" "1/5"  "0"    "0"    "0"    "0"    "0"   
 [41] "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"   
 [51] "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"   
 [61] "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"   
 [71] "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"   
 [81] "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"   
 [91] "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"   
[101] "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"   
[111] "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"   
[121] "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"   
[131] "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"   
[141] "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"   
[151] "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"   
[161] "0"    "-9"   "8"    "0"    "0"    "0"    "0"    "0"    "0"    "-8"  
[171] "7"    "0"    "0"    "0"    "0"    "0"    "0"    "-7"   "6"    "0"   
[181] "0"    "0"    "0"    "0"    "0"    "-6"   "5"    "0"    "0"    "0"   
[191] "0"    "0"    "0"    "-5"   "4"    "0"    "0"    "0"    "0"    "0"   
[201] "0"    "-4"   "3"    "0"    "0"    "0"    "0"    "0"    "0"    "-3"  
[211] "2"    "0"    "0"    "0"    "0"    "0"    "0"    "-2"   "1"    "0"   
[221] "0"    "0"    "0"    "0"    "0"    "0"    "0"    "-1"   "0"    "0"   
[231] "0"    "0"    "0"    "0"    "0"    "-1"   "0"    "0"    "0"    "0"   
[241] "0"    "0"    "0"    "-1"   "0"    "0"    "0"    "0"    "0"    "0"   
[251] "0"    "-1"   "0"    "0"    "0"    "0"    "0"    "0"    "0"    "-1"  
[261] "0"    "0"    "0"    "0"    "0"    "0"    "0"    "-1"   "0"    "0"   
[271] "0"    "0"    "0"    "0"    "0"    "-1"   "0"    "0"    "0"    "0"   
[281] "0"    "0"    "0"    "-1"   "0"    "0"    "0"    "0"    "0"    "0"   
[291] "0"    "-1"   "0"    "0"    "0"    "0"    "0"    "0"    "0"    "-1"  
[301] "0"    "0"    "0"    "0"    "0"    "0"    "0"    "-1"   "0"    "0"   
[311] "0"    "0"    "0"    "0"    "0"    "-1"   "0"    "0"    "0"    "0"   
[321] "0"    "0"    "0"    "-1"   "0"    "0"    "0"    "0"    "0"    "0"   
[331] "0"    "-1"   "0"    "0"    "0"    "0"    "0"    "0"    "0"    "-1"  
[341] "0"    "0"    "0"    "0"    "0"    "0"    "0"    "-1"   "0"    "0"   
[351] "0"    "0"    "0"    "0"    "0"    "-1"   "0"    "0"    "0"    "0"   
[361] "0"    "0"    "0"    "-1"   "0"    "0"    "0"    "0"    "0"    "0"   
[371] "0"    "-1"   "0"    "0"    "0"    "0"    "0"    "0"    "0"    "-1"  
[381] "0"    "0"    "0"    "0"    "0"    "0"    "0"    "-1"   "0"    "0"   
[391] "0"    "0"    "0"    "0"    "0"    "-1"   "0"    "0"    "0"    "0"   
[401] "0"    "0"    "0"    "-1"   "0"    "0"    "0"    "0"    "0"    "0"   
[411] "0"    "-1"   "0"    "0"    "0"    "0"    "0"    "0"    "0"    "-1"  
[421] "0"    "0"    "0"    "0"    "0"    "0"    "0"    "-1"   "0"    "0"   
[431] "0"    "0"    "0"    "0"    "0"    "-1"   "0"    "0"    "0"    "0"   
[441] "0"    "0"    "0"    "-1"   "0"    "0"    "0"    "0"    "0"    "0"   
[451] "0"    "-1"   "0"    "0"    "0"    "0"    "0"    "0"    "0"    "-1"  
[461] "0"    "0"    "0"    "0"    "0"    "0"    "0"    "-1"   "0"    "0"   
[471] "0"    "0"    "0"    "0"    "0"    "-1"   "0"    "0"    "0"    "0"   
[481] "0"    "0"    "0"    "-1"   "0"    "0"    "0"    "0"    "0"    "0"   
[491] "0"    "-1"   "0"    "0"    "0"    "0"    "0"    "0"    "0"    "-1"  
[501] "0"    "0"    "0"    "0"    "0"    "0"    "0"    "-1"   "0"    "0"   
[511] "0"    "0"    "0"    "0"    "0"    "-1"   "0"    "0"    "0"    "0"   
[521] "0"    "0"    "0"    "-1"   "0"    "0"    "0"    "0"    "0"    "0"   
[531] "0"    "-1"   "0"    "0"    "0"    "0"    "0"    "0"    "0"    "-1"  
[541] "0"    "0"    "0"    "0"    "0"    "0"    "0"    "-1"   "0"    "0"   
[551] "0"    "0"    "0"    "0"    "0"    "-1"   "0"    "0"    "0"    "0"   
[561] "0"    "0"    "0"    "-1"   "0"    "0"    "0"    "0"    "0"    "0"   
[571] "0"    "-1"   "0"    "0"    "0"    "0"    "0"    "0"    "0"    "-1"  
[581] "0"    "0"    "0"    "0"    "0"    "0"    "0"    "-1"   "0"    "0"   
[591] "0"    "0"    "0"    "0"    "0"    "-1"   "0"    "0"    "0"    "0"   
[601] "0"    "0"    "0"    "-1"   "0"    "0"    "0"    "0"    "0"    "0"   
[611] "0"    "-1"   "0"    "0"    "0"    "0"    "0"    "0"    "0"    "-1"  
[621] "0"    "0"    "0"    "0"    "0"    "0"    "0"    "0"    "-1"   "0"   
[631] "1"    "-1"   "0"    "0"    "0"    "0"    "-1"   "0"    "1"    "-1"  
[641] "0"    "0"    "0"    "0"    "-1"   "0"    "0"    "0"    "0"    "0"   
[651] "0"    "0"    "-1"   "0"    "1"    "-1"   "0"    "0"    "0"    "0"   
[661] "-1"   "0"    "1"    "-1"   "0"    "0"    "0"    "0"    "-1"   "0"   
[671] "1"    "-1"   "0"    "0"    "0"    "0"    "-1"   "0"    "1"    "-1"  
[681] "0"    "0"    "0"    "0"    "-1"   "0"    "0"    "0"    "0"    "0"   
[691] "0"    "0"    "-1"   "0"    "0"    "0"    "0"    "0"    "0"    "0"   
[701] "-1"   "0"    "0"    "0"    "0"    "0"    "0"    "0"    "-1"   "0"   
[711] "0"    "0"    "0"    "0"    "0"    "0"    "0"    "-1"   "0"    "0"   

$class
[1] "fractions" "matrix"   

In [160]:
%%R
print("Following attributes will be dropped from model due to multicollinearity:")
aliased <- ifelse(grepl('[[:digit:]]$', aliased), substr(aliased, 1, nchar(aliased)-1), aliased)
print(aliased)

paste(as.character(length(vars) - length(vars[!vars %in% c(aliased)])), "attributes removed from model input")
[1] "Following attributes will be dropped from model due to multicollinearity:"
[1] "YearsToRetirement" "AGELVL_J"          "AGELVL_K"         
[4] "LOC_56"            "TOA_48"            "PPGROUP_12"       
[7] "TOATYP_1"          "TOATYP_2"         
[1] "8 attributes removed from model input"
In [161]:
%%R
runLogit <- function(less){
    #vars <- vars[!(vars %in% c(less))]
    fla <- paste("SEP ~", paste(vars, collapse="+"))
    fla <- as.formula(fla)

    binLog <- glm(fla, data = OPMAnalysisDataNoFamBinary, family = "binomial")
    return(binLog)
}

vars <- vars[!(vars %in% c(aliased))]
BinLogit2 <- runLogit(aliased)
summary(BinLogit2)
Call:
glm(formula = fla, family = "binomial", data = OPMAnalysisDataNoFamBinary)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-3.0182  -0.6661  -0.1038   0.7300   3.3486  

Coefficients:
                                Estimate Std. Error z value Pr(>|z|)    
(Intercept)                   -3.273e+01  6.386e+00  -5.125 2.97e-07 ***
GSEGRD                        -5.811e-01  4.736e-02 -12.270  < 2e-16 ***
IndAvgSalary                  -1.229e-05  4.672e-06  -2.630 0.008545 ** 
SalaryOverUnderIndAvg         -1.798e-06  6.633e-06  -0.271 0.786282    
LowerLimitAge                 -5.646e-02  2.694e-02  -2.096 0.036085 *  
BLS_FEDERAL_OtherSep_Rate      5.803e+01  6.254e+00   9.279  < 2e-16 ***
BLS_FEDERAL_Quits_Rate         1.089e+02  9.746e+00  11.178  < 2e-16 ***
BLS_FEDERAL_TotalSep_Level    -3.277e-01  2.734e-01  -1.198 0.230735    
BLS_FEDERAL_JobOpenings_Rate  -2.227e+01  5.998e+00  -3.713 0.000205 ***
BLS_FEDERAL_OtherSep_Level    -1.462e+00  1.327e-01 -11.023  < 2e-16 ***
BLS_FEDERAL_Quits_Level       -2.072e+00  3.386e-01  -6.118 9.49e-10 ***
BLS_FEDERAL_JobOpenings_Level  7.239e-01  2.008e-01   3.605 0.000312 ***
BLS_FEDERAL_Layoffs_Rate      -6.068e+01  4.466e+00 -13.585  < 2e-16 ***
BLS_FEDERAL_Layoffs_Level      3.960e+00  3.955e-01  10.013  < 2e-16 ***
BLS_FEDERAL_TotalSep_Rate     -3.096e+01  3.016e+00 -10.263  < 2e-16 ***
SALARYLog                      3.755e-01  7.039e-01   0.533 0.593689    
LOSSqrt                       -7.742e-01  2.430e-02 -31.863  < 2e-16 ***
SEPCount_EFDATE_OCCLog        -5.877e-02  1.697e-02  -3.463 0.000534 ***
SEPCount_EFDATE_LOCLog        -4.532e-01  1.305e-01  -3.474 0.000513 ***
IndAvgSalaryLog                4.161e+00  8.560e-01   4.861 1.17e-06 ***
AGELVL_B1                     -9.866e-01  1.154e+00  -0.855 0.392526    
AGELVL_C1                     -3.741e-01  9.996e-01  -0.374 0.708224    
AGELVL_D1                     -1.535e-01  8.643e-01  -0.178 0.859011    
AGELVL_E1                      1.699e-01  7.306e-01   0.233 0.816125    
AGELVL_F1                      4.260e-01  5.976e-01   0.713 0.475969    
AGELVL_G1                      7.197e-01  4.653e-01   1.547 0.121961    
AGELVL_H1                      8.788e-01  3.344e-01   2.628 0.008586 ** 
AGELVL_I1                      7.511e-01  2.081e-01   3.609 0.000307 ***
LOC_011                        4.648e-02  4.144e-01   0.112 0.910704    
LOC_021                        1.706e-01  4.498e-01   0.379 0.704477    
LOC_041                        8.845e-01  4.196e-01   2.108 0.035044 *  
LOC_051                        1.275e-01  4.344e-01   0.293 0.769216    
LOC_061                        1.442e+00  4.987e-01   2.891 0.003839 ** 
LOC_081                        6.195e-01  4.240e-01   1.461 0.144057    
LOC_091                       -4.799e-01  4.989e-01  -0.962 0.336083    
LOC_101                       -5.719e-01  7.195e-01  -0.795 0.426650    
LOC_111                        8.543e-01  4.826e-01   1.770 0.076687 .  
LOC_121                        7.306e-01  4.375e-01   1.670 0.094945 .  
LOC_131                        7.676e-01  4.281e-01   1.793 0.072989 .  
LOC_151                       -1.256e-02  4.057e-01  -0.031 0.975296    
LOC_161                        1.041e-01  4.578e-01   0.227 0.820080    
LOC_171                        2.223e-01  4.186e-01   0.531 0.595280    
LOC_181                       -4.071e-02  4.451e-01  -0.091 0.927127    
LOC_191                        2.682e-03  4.944e-01   0.005 0.995671    
LOC_201                        7.133e-01  4.503e-01   1.584 0.113183    
LOC_211                        1.217e-01  4.246e-01   0.287 0.774316    
LOC_221                       -6.172e-02  4.211e-01  -0.147 0.883470    
LOC_231                        3.209e-02  5.059e-01   0.063 0.949416    
LOC_241                        7.031e-01  4.569e-01   1.539 0.123862    
LOC_251                        3.305e-01  4.194e-01   0.788 0.430683    
LOC_261                        1.607e-01  4.227e-01   0.380 0.703828    
LOC_271                        5.177e-01  4.434e-01   1.167 0.243021    
LOC_281                        1.093e-01  4.415e-01   0.248 0.804456    
LOC_291                        2.000e-01  4.369e-01   0.458 0.647037    
LOC_301                        7.146e-01  4.403e-01   1.623 0.104571    
LOC_311                       -1.000e-01  4.964e-01  -0.201 0.840309    
LOC_321                        2.666e-01  4.461e-01   0.598 0.550173    
LOC_331                       -2.684e-01  6.484e-01  -0.414 0.678872    
LOC_341                        1.309e-03  4.192e-01   0.003 0.997509    
LOC_351                        7.471e-01  4.073e-01   1.834 0.066598 .  
LOC_361                        5.629e-01  4.389e-01   1.283 0.199644    
LOC_371                        5.401e-01  4.225e-01   1.278 0.201079    
LOC_381                        3.165e-01  5.209e-01   0.608 0.543487    
LOC_391                        2.746e-01  4.189e-01   0.656 0.512098    
LOC_401                        4.496e-01  4.136e-01   1.087 0.276969    
LOC_411                        4.721e-01  4.301e-01   1.097 0.272440    
LOC_421                        2.419e-01  4.348e-01   0.556 0.577926    
LOC_441                       -3.547e-01  6.673e-01  -0.531 0.595110    
LOC_451                        1.987e-01  4.303e-01   0.462 0.644247    
LOC_461                        5.412e-01  4.460e-01   1.213 0.224988    
LOC_471                        4.890e-02  4.352e-01   0.112 0.910533    
LOC_481                        1.274e+00  4.777e-01   2.667 0.007645 ** 
LOC_491                        2.330e-01  4.340e-01   0.537 0.591254    
LOC_501                       -4.656e-01  7.116e-01  -0.654 0.512947    
LOC_511                        6.192e-01  4.712e-01   1.314 0.188832    
LOC_531                        9.418e-01  4.322e-01   2.179 0.029305 *  
LOC_541                       -9.854e-02  4.546e-01  -0.217 0.828404    
LOC_551                       -2.589e-01  4.460e-01  -0.581 0.561521    
TOA_101                       -1.148e+00  2.081e-01  -5.516 3.48e-08 ***
TOA_151                       -1.079e+00  2.131e-01  -5.061 4.16e-07 ***
TOA_201                        1.575e-02  2.801e-01   0.056 0.955171    
TOA_301                       -7.135e-01  2.237e-01  -3.189 0.001426 ** 
TOA_321                       -3.497e-01  7.998e-01  -0.437 0.661924    
TOA_351                       -1.503e+00  3.611e-01  -4.161 3.17e-05 ***
TOA_381                       -7.468e-01  2.136e-01  -3.496 0.000472 ***
TOA_401                       -1.049e+00  2.706e-01  -3.878 0.000105 ***
TOA_421                        6.479e-02  4.898e-01   0.132 0.894753    
TOA_441                        1.318e+00  1.131e+00   1.165 0.243998    
TOA_451                        8.104e+00  1.392e+02   0.058 0.953584    
PPGROUP_111                    3.799e-01  1.581e-01   2.403 0.016261 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 20683  on 14919  degrees of freedom
Residual deviance: 13443  on 14830  degrees of freedom
AIC: 13623

Number of Fisher Scoring iterations: 10

In [162]:
%%R
#data.frame(summary(BinLogit)$coef[summary(BinLogit)$coef[,4] <= .05, 4]) #Review coefficients of p-value less than 0.05
LogitCoeffs <- data.frame(summary(BinLogit2)$coef[-1,4]) #Ignore Intercept and only look at p-values
#LogitCoeffs[LogitCoeffs$`summary.BinLogit..coef..1..4.` == max(LogitCoeffs$`summary.BinLogit..coef..1..4.`),]
cbind(rownames(LogitCoeffs)[LogitCoeffs$`summary.BinLogit2..coef..1..4.` == max(LogitCoeffs$`summary.BinLogit2..coef..1..4.`)],
      max(LogitCoeffs))
     [,1]      [,2]               
[1,] "LOC_341" "0.997508697424294"
In [174]:
%%R
runVifs <- function(logit){
    tmp <- as.data.frame(vif(logit))
    colnames(tmp) <- "VIF"

    scipen.default <- getOption("scipen")
    options(scipen=999)
    print(tmp)
    options(scipen=scipen.default)
    return(tmp)
}

vifs.BinLogit2 <- runVifs(BinLogit2)
Error in vif(logit) : could not find function "vif"
In [164]:
%%R
remove <- rownames(vifs.BinLogit2)[vifs.BinLogit2$VIF > 1000]
print(paste(length(rownames(vifs.BinLogit2)) - sum(!(rownames(vifs.BinLogit2) %in% remove)), "more attributes removed from model input"))
Error in rownames(vifs.BinLogit2) : object 'vifs.BinLogit2' not found
/users3/cse/amfrye/.local/lib/python3.5/site-packages/rpy2/rinterface/__init__.py:145: RRuntimeWarning: Error in rownames(vifs.BinLogit2) : object 'vifs.BinLogit2' not found

  warnings.warn(x, RRuntimeWarning)
In [165]:
%%R
print(remove)
function (..., list = character(), pos = -1, envir = as.environment(pos), 
    inherits = FALSE) 
{
    dots <- match.call(expand.dots = FALSE)$...
    if (length(dots) && !all(vapply(dots, function(x) is.symbol(x) || 
        is.character(x), NA, USE.NAMES = FALSE))) 
        stop("... must contain names or character strings")
    names <- vapply(dots, as.character, "")
    if (length(names) == 0L) 
        names <- character()
    list <- .Primitive("c")(list, names)
    .Internal(remove(list, envir, inherits))
}
<bytecode: 0x24d7af80>
<environment: namespace:base>
In [166]:
%%R
vars <- vars[!(vars %in% c(remove))]
BinLogit3 <- runLogit(remove)
summary(BinLogit3)
Call:
glm(formula = fla, family = "binomial", data = OPMAnalysisDataNoFamBinary)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-3.0182  -0.6661  -0.1038   0.7300   3.3486  

Coefficients:
                                Estimate Std. Error z value Pr(>|z|)    
(Intercept)                   -3.273e+01  6.386e+00  -5.125 2.97e-07 ***
GSEGRD                        -5.811e-01  4.736e-02 -12.270  < 2e-16 ***
IndAvgSalary                  -1.229e-05  4.672e-06  -2.630 0.008545 ** 
SalaryOverUnderIndAvg         -1.798e-06  6.633e-06  -0.271 0.786282    
LowerLimitAge                 -5.646e-02  2.694e-02  -2.096 0.036085 *  
BLS_FEDERAL_OtherSep_Rate      5.803e+01  6.254e+00   9.279  < 2e-16 ***
BLS_FEDERAL_Quits_Rate         1.089e+02  9.746e+00  11.178  < 2e-16 ***
BLS_FEDERAL_TotalSep_Level    -3.277e-01  2.734e-01  -1.198 0.230735    
BLS_FEDERAL_JobOpenings_Rate  -2.227e+01  5.998e+00  -3.713 0.000205 ***
BLS_FEDERAL_OtherSep_Level    -1.462e+00  1.327e-01 -11.023  < 2e-16 ***
BLS_FEDERAL_Quits_Level       -2.072e+00  3.386e-01  -6.118 9.49e-10 ***
BLS_FEDERAL_JobOpenings_Level  7.239e-01  2.008e-01   3.605 0.000312 ***
BLS_FEDERAL_Layoffs_Rate      -6.068e+01  4.466e+00 -13.585  < 2e-16 ***
BLS_FEDERAL_Layoffs_Level      3.960e+00  3.955e-01  10.013  < 2e-16 ***
BLS_FEDERAL_TotalSep_Rate     -3.096e+01  3.016e+00 -10.263  < 2e-16 ***
SALARYLog                      3.755e-01  7.039e-01   0.533 0.593689    
LOSSqrt                       -7.742e-01  2.430e-02 -31.863  < 2e-16 ***
SEPCount_EFDATE_OCCLog        -5.877e-02  1.697e-02  -3.463 0.000534 ***
SEPCount_EFDATE_LOCLog        -4.532e-01  1.305e-01  -3.474 0.000513 ***
IndAvgSalaryLog                4.161e+00  8.560e-01   4.861 1.17e-06 ***
AGELVL_B1                     -9.866e-01  1.154e+00  -0.855 0.392526    
AGELVL_C1                     -3.741e-01  9.996e-01  -0.374 0.708224    
AGELVL_D1                     -1.535e-01  8.643e-01  -0.178 0.859011    
AGELVL_E1                      1.699e-01  7.306e-01   0.233 0.816125    
AGELVL_F1                      4.260e-01  5.976e-01   0.713 0.475969    
AGELVL_G1                      7.197e-01  4.653e-01   1.547 0.121961    
AGELVL_H1                      8.788e-01  3.344e-01   2.628 0.008586 ** 
AGELVL_I1                      7.511e-01  2.081e-01   3.609 0.000307 ***
LOC_011                        4.648e-02  4.144e-01   0.112 0.910704    
LOC_021                        1.706e-01  4.498e-01   0.379 0.704477    
LOC_041                        8.845e-01  4.196e-01   2.108 0.035044 *  
LOC_051                        1.275e-01  4.344e-01   0.293 0.769216    
LOC_061                        1.442e+00  4.987e-01   2.891 0.003839 ** 
LOC_081                        6.195e-01  4.240e-01   1.461 0.144057    
LOC_091                       -4.799e-01  4.989e-01  -0.962 0.336083    
LOC_101                       -5.719e-01  7.195e-01  -0.795 0.426650    
LOC_111                        8.543e-01  4.826e-01   1.770 0.076687 .  
LOC_121                        7.306e-01  4.375e-01   1.670 0.094945 .  
LOC_131                        7.676e-01  4.281e-01   1.793 0.072989 .  
LOC_151                       -1.256e-02  4.057e-01  -0.031 0.975296    
LOC_161                        1.041e-01  4.578e-01   0.227 0.820080    
LOC_171                        2.223e-01  4.186e-01   0.531 0.595280    
LOC_181                       -4.071e-02  4.451e-01  -0.091 0.927127    
LOC_191                        2.682e-03  4.944e-01   0.005 0.995671    
LOC_201                        7.133e-01  4.503e-01   1.584 0.113183    
LOC_211                        1.217e-01  4.246e-01   0.287 0.774316    
LOC_221                       -6.172e-02  4.211e-01  -0.147 0.883470    
LOC_231                        3.209e-02  5.059e-01   0.063 0.949416    
LOC_241                        7.031e-01  4.569e-01   1.539 0.123862    
LOC_251                        3.305e-01  4.194e-01   0.788 0.430683    
LOC_261                        1.607e-01  4.227e-01   0.380 0.703828    
LOC_271                        5.177e-01  4.434e-01   1.167 0.243021    
LOC_281                        1.093e-01  4.415e-01   0.248 0.804456    
LOC_291                        2.000e-01  4.369e-01   0.458 0.647037    
LOC_301                        7.146e-01  4.403e-01   1.623 0.104571    
LOC_311                       -1.000e-01  4.964e-01  -0.201 0.840309    
LOC_321                        2.666e-01  4.461e-01   0.598 0.550173    
LOC_331                       -2.684e-01  6.484e-01  -0.414 0.678872    
LOC_341                        1.309e-03  4.192e-01   0.003 0.997509    
LOC_351                        7.471e-01  4.073e-01   1.834 0.066598 .  
LOC_361                        5.629e-01  4.389e-01   1.283 0.199644    
LOC_371                        5.401e-01  4.225e-01   1.278 0.201079    
LOC_381                        3.165e-01  5.209e-01   0.608 0.543487    
LOC_391                        2.746e-01  4.189e-01   0.656 0.512098    
LOC_401                        4.496e-01  4.136e-01   1.087 0.276969    
LOC_411                        4.721e-01  4.301e-01   1.097 0.272440    
LOC_421                        2.419e-01  4.348e-01   0.556 0.577926    
LOC_441                       -3.547e-01  6.673e-01  -0.531 0.595110    
LOC_451                        1.987e-01  4.303e-01   0.462 0.644247    
LOC_461                        5.412e-01  4.460e-01   1.213 0.224988    
LOC_471                        4.890e-02  4.352e-01   0.112 0.910533    
LOC_481                        1.274e+00  4.777e-01   2.667 0.007645 ** 
LOC_491                        2.330e-01  4.340e-01   0.537 0.591254    
LOC_501                       -4.656e-01  7.116e-01  -0.654 0.512947    
LOC_511                        6.192e-01  4.712e-01   1.314 0.188832    
LOC_531                        9.418e-01  4.322e-01   2.179 0.029305 *  
LOC_541                       -9.854e-02  4.546e-01  -0.217 0.828404    
LOC_551                       -2.589e-01  4.460e-01  -0.581 0.561521    
TOA_101                       -1.148e+00  2.081e-01  -5.516 3.48e-08 ***
TOA_151                       -1.079e+00  2.131e-01  -5.061 4.16e-07 ***
TOA_201                        1.575e-02  2.801e-01   0.056 0.955171    
TOA_301                       -7.135e-01  2.237e-01  -3.189 0.001426 ** 
TOA_321                       -3.497e-01  7.998e-01  -0.437 0.661924    
TOA_351                       -1.503e+00  3.611e-01  -4.161 3.17e-05 ***
TOA_381                       -7.468e-01  2.136e-01  -3.496 0.000472 ***
TOA_401                       -1.049e+00  2.706e-01  -3.878 0.000105 ***
TOA_421                        6.479e-02  4.898e-01   0.132 0.894753    
TOA_441                        1.318e+00  1.131e+00   1.165 0.243998    
TOA_451                        8.104e+00  1.392e+02   0.058 0.953584    
PPGROUP_111                    3.799e-01  1.581e-01   2.403 0.016261 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 20683  on 14919  degrees of freedom
Residual deviance: 13443  on 14830  degrees of freedom
AIC: 13623

Number of Fisher Scoring iterations: 10

In [167]:
%%R
vifs.BinLogit3 <- runVifs(BinLogit3)
Error in vif(logit) : could not find function "vif"
In [168]:
%%time

def lr_explorBinary(  cost,
                      Data        = OPMAnalysisDataNoFamBinary,
                      cols        = PCList,
                      cv          = cv,
                      seed        = seed):
    
    startTime = datetime.now()
    y = Data["SEP"].values # get the labels we want    
    
    if ("SEP" in cols):    X = Data[cols].drop("SEP", axis=1).as_matrix() 
    else: X = Data[cols]
    
    lr_clf = LogisticRegression(penalty='l2', C=cost, class_weight=None, random_state=seed) # get object
    
    # setup pipeline to take PCA, then fit a clf model
    clf_pipe = Pipeline(
        [('minMaxScaler',MinMaxScaler()),
         ('CLF',lr_clf)]
    )

    accuracy = cross_val_score(clf_pipe, X, y, cv=cv.split(X, y)) # this also can help with parallelism
    MeanAccuracy =  sum(accuracy)/len(accuracy)
    accuracy = np.append(accuracy, MeanAccuracy)
    endTime = datetime.now()
    TotalTime = endTime - startTime
    accuracy = np.append(accuracy, TotalTime)
    return accuracy
CPU times: user 24 µs, sys: 1 µs, total: 25 µs
Wall time: 39.6 µs
In [169]:
%%time

def lr_explorBinary_w_PCA(cost,
                          PCA,
                          Data        = OPMAnalysisDataNoFamBinary,
                          cv          = cv,
                          seed        = seed):
    
    startTime = datetime.now()
    y = Data["SEP"].values # get the labels we want    
    
    X = Data.drop("SEP", axis=1).as_matrix() 
    
    lr_clf = LogisticRegression(penalty='l2', C=cost, class_weight=None, random_state=seed) # get object
    
    # setup pipeline to take PCA, then fit a clf model
    clf_pipe = Pipeline(
        [('minMaxScaler',MinMaxScaler()),
         ('PCA',PCA),
         ('CLF',lr_clf)]
    )

    accuracy = cross_val_score(clf_pipe, X, y, cv=cv.split(X, y)) # this also can help with parallelism
    MeanAccuracy =  sum(accuracy)/len(accuracy)
    accuracy = np.append(accuracy, MeanAccuracy)
    endTime = datetime.now()
    TotalTime = endTime - startTime
    accuracy = np.append(accuracy, TotalTime)
    return accuracy
CPU times: user 48 µs, sys: 3 µs, total: 51 µs
Wall time: 60.6 µs
In [170]:
%%time

##Full Columns
acclist = [] 

cost    = [.00000001, .0001, .001, .01, .05, 1.0, 2.0, 3.0, 4.0, 5.0]

for i in range(0,len(cost)):
    acclist.append(lr_explorBinary(cost       = cost[i],
                             cols       = fullColumns))

LRdf = pd.DataFrame(pd.concat([pd.DataFrame({
                                                "ModelVersion": "All Raw Features",
                                                "Cost": cost
                                              })[["ModelVersion", "Cost"]],
                               pd.DataFrame(acclist)], axis = 1).reindex())
LRdf.columns = ['ModelVersion','Cost', 'Iteration 0', 'Iteration 1', 'Iteration 2', 'Iteration 3', 'Iteration 4', 'MeanAccuracy', 'RunTime']
display(LRdf)

##Reduced Columns
acclist = [] 

cost    = [.00000001, .0001, .001, .01, .05, 1.0, 2.0, 3.0, 4.0, 5.0]

for i in range(0,len(cost)):
    acclist.append(lr_explorBinary(cost       = cost[i]))

LRdf = pd.DataFrame(pd.concat([pd.DataFrame({
                                                "ModelVersion": "Top 15 from PCA Raw Features",
                                                "Cost": cost
                                              })[["ModelVersion", "Cost"]],
                               pd.DataFrame(acclist)], axis = 1).reindex())
LRdf.columns = ['ModelVersion','Cost', 'Iteration 0', 'Iteration 1', 'Iteration 2', 'Iteration 3', 'Iteration 4', 'MeanAccuracy', 'RunTime']
display(LRdf)



##With PCA
acclist = [] 

cost    = [.00000001, .0001, .001, .01, .05, 1.0, 2.0, 3.0, 4.0, 5.0]

for i in range(0,len(cost)):
    acclist.append(lr_explorBinary_w_PCA(cost       = cost[i],
                                   PCA        = PCA(n_components=23, svd_solver='randomized', random_state = seed)))

LRdf = pd.DataFrame(pd.concat([pd.DataFrame({
                                                "ModelVersion": "With PCA",
                                                "Cost": cost
                                              })[["ModelVersion", "Cost"]],
                               pd.DataFrame(acclist)], axis = 1).reindex())
LRdf.columns = ['ModelVersion','Cost', 'Iteration 0', 'Iteration 1', 'Iteration 2', 'Iteration 3', 'Iteration 4', 'MeanAccuracy', 'RunTime']
display(LRdf)

"""
##Significant Column List from Manual Tuning in R
acclist = [] 

cost    = [.00000001, .0001, .001, .01, .05, 1.0, 2.0, 3.0, 4.0, 5.0]

for i in range(0,len(cost)):
    acclist.append(lr_explorBinary(cost       = cost[i],
                             cols       = LRSigCols))

LRdf = pd.DataFrame(pd.concat([pd.DataFrame({
                                                "ModelVersion": "Manual Significant Features",
                                                "Cost": cost
                                              })[["ModelVersion", "Cost"]],
                               pd.DataFrame(acclist)], axis = 1).reindex())
LRdf.columns = ['ModelVersion','Cost', 'Iteration 0', 'Iteration 1', 'Iteration 2', 'Iteration 3', 'Iteration 4', 'MeanAccuracy', 'RunTime']
display(LRdf)
"""
ModelVersion Cost Iteration 0 Iteration 1 Iteration 2 Iteration 3 Iteration 4 MeanAccuracy RunTime
0 All Raw Features 1.000000e-08 0.591290 0.676717 0.593499 0.619511 0.621857 0.620575 00:00:00.376333
1 All Raw Features 1.000000e-04 0.649246 0.582580 0.693700 0.698961 0.715052 0.667908 00:00:00.434232
2 All Raw Features 1.000000e-03 0.667002 0.565159 0.716823 0.725109 0.722762 0.679371 00:00:00.472962
3 All Raw Features 1.000000e-02 0.654271 0.562814 0.714477 0.741200 0.728797 0.680312 00:00:00.526026
4 All Raw Features 5.000000e-02 0.641541 0.572194 0.721180 0.754274 0.731814 0.684201 00:00:00.617856
5 All Raw Features 1.000000e+00 0.644556 0.672027 0.719169 0.749581 0.670466 0.691160 00:00:00.809512
6 All Raw Features 2.000000e+00 0.635176 0.730988 0.726206 0.748240 0.658062 0.699735 00:00:01.325358
7 All Raw Features 3.000000e+00 0.622446 0.763484 0.730563 0.750922 0.651693 0.703821 00:00:01.578294
8 All Raw Features 4.000000e+00 0.619095 0.781240 0.733914 0.752263 0.647335 0.706769 00:00:01.036267
9 All Raw Features 5.000000e+00 0.611725 0.790955 0.734584 0.755615 0.647000 0.707976 00:00:01.032512
ModelVersion Cost Iteration 0 Iteration 1 Iteration 2 Iteration 3 Iteration 4 MeanAccuracy RunTime
0 Top 15 from PCA Raw Features 1.000000e-08 0.597320 0.678727 0.597855 0.624204 0.625880 0.624797 00:00:00.351286
1 Top 15 from PCA Raw Features 1.000000e-04 0.650921 0.582915 0.694705 0.699631 0.714381 0.668511 00:00:00.371751
2 Top 15 from PCA Raw Features 1.000000e-03 0.665327 0.564154 0.716488 0.725779 0.722762 0.678902 00:00:00.407552
3 Top 15 from PCA Raw Features 1.000000e-02 0.651591 0.563149 0.714812 0.742876 0.729802 0.680446 00:00:00.490464
4 Top 15 from PCA Raw Features 5.000000e-02 0.638861 0.569514 0.720509 0.752933 0.735501 0.683464 00:00:00.541733
5 Top 15 from PCA Raw Features 1.000000e+00 0.642881 0.681742 0.725201 0.750587 0.669460 0.693974 00:00:01.055802
6 Top 15 from PCA Raw Features 2.000000e+00 0.635846 0.744054 0.731568 0.751257 0.656051 0.703755 00:00:01.513615
7 Top 15 from PCA Raw Features 3.000000e+00 0.625796 0.781575 0.735590 0.752598 0.651022 0.709316 00:00:01.188239
8 Top 15 from PCA Raw Features 4.000000e+00 0.617755 0.793970 0.740282 0.755280 0.646664 0.710790 00:00:00.999736
9 Top 15 from PCA Raw Features 5.000000e+00 0.612060 0.796650 0.740617 0.755615 0.645323 0.710053 00:00:01.052755
ModelVersion Cost Iteration 0 Iteration 1 Iteration 2 Iteration 3 Iteration 4 MeanAccuracy RunTime
0 With PCA 1.000000e-08 0.694472 0.637521 0.712466 0.728797 0.716058 0.697863 00:00:01.399896
1 With PCA 1.000000e-04 0.691457 0.617755 0.709786 0.729132 0.716728 0.692972 00:00:01.144634
2 With PCA 1.000000e-03 0.682077 0.567504 0.710791 0.733155 0.716058 0.681917 00:00:00.925541
3 With PCA 1.000000e-02 0.642211 0.557789 0.700737 0.731814 0.707342 0.667978 00:00:00.985585
4 With PCA 5.000000e-02 0.626466 0.554104 0.692694 0.735501 0.711700 0.664093 00:00:01.041255
5 With PCA 1.000000e+00 0.617755 0.551424 0.688673 0.736172 0.711029 0.661011 00:00:01.057309
6 With PCA 2.000000e+00 0.617085 0.551089 0.688673 0.736507 0.710359 0.660743 00:00:01.144108
7 With PCA 3.000000e+00 0.616750 0.551089 0.689008 0.736507 0.710023 0.660676 00:00:01.089359
8 With PCA 4.000000e+00 0.617085 0.551089 0.689008 0.736507 0.710359 0.660810 00:00:01.195399
9 With PCA 5.000000e+00 0.617085 0.551089 0.688673 0.736507 0.710359 0.660743 00:00:01.478871
CPU times: user 2min 8s, sys: 11min 42s, total: 13min 51s
Wall time: 27.8 s
In [171]:
lr_clf = LogisticRegression(penalty='l2', C=.0001, class_weight=None, random_state=seed) # get object

lr_clf, lr_acc = compute_kfold_scores_ClassificationBinary(clf         = lr_clf,
                                                           cols        = fullColumns)
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
confusion matrix
Predicted    NS   SC   All
True                      
NS         1259  241  1500
SC          806  679  1485
All        2065  920  2985

Normalized confusion matrix
[[ 0.83933333  0.16066667]
 [ 0.54276094  0.45723906]]
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
confusion matrix
Predicted    NS    SC   All
True                       
NS          772   728  1500
SC          518   967  1485
All        1290  1695  2985

Normalized confusion matrix
[[ 0.51466667  0.48533333]
 [ 0.34882155  0.65117845]]
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
confusion matrix
Predicted    NS    SC   All
True                       
NS         1196   303  1499
SC          611   874  1485
All        1807  1177  2984

Normalized confusion matrix
[[ 0.79786524  0.20213476]
 [ 0.41144781  0.58855219]]
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
confusion matrix
Predicted    NS    SC   All
True                       
NS         1228   271  1499
SC          627   857  1484
All        1855  1128  2983

Normalized confusion matrix
[[ 0.81921281  0.18078719]
 [ 0.42250674  0.57749326]]
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
confusion matrix
Predicted    NS    SC   All
True                       
NS         1169   330  1499
SC          520   964  1484
All        1689  1294  2983

Normalized confusion matrix
[[ 0.77985324  0.22014676]
 [ 0.35040431  0.64959569]]
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
Accuracy Ratings across all iterations: [0.64925, 0.58258, 0.6937, 0.69896, 0.71505]

        Average Accuracy: 0.66791

In [ ]:
 

Feature Importance of fit models

Binary Classifier Logistic Regression

In [146]:
print(lr_clf.coef_[0])
coef = pd.Series(lr_clf.coef_[0], index=fullColumns)

maxcoef = pd.Series(pd.DataFrame(abs(coef).sort_values(ascending=False).head(20)).index)
       
weightsplot = pd.Series(coef, index=maxcoef)
weightsplot.plot(title = "Logistic Regression Coefficients", kind='bar', color = 'Tomato')
[-0.02528664 -0.01182085 -0.00104205 -0.06169329  0.07098836  0.00115987
  0.00967432  0.00485549  0.00899971  0.00204251  0.01816572  0.00827521
  0.00129566  0.0052216   0.00459156 -0.01832361 -0.05605962  0.00799642
  0.00676698 -0.01394307  0.00373036  0.02929167  0.0315458   0.02315817
  0.01588229  0.00721203 -0.00025943 -0.0281359  -0.03999045 -0.03313947
 -0.00286368  0.00022185  0.00439589  0.0003319   0.00774252  0.0001807
 -0.00018306  0.00015836 -0.0011788  -0.00152971  0.00116765 -0.00014971
 -0.0004632  -0.00215217 -0.00081119  0.00029515  0.00104248 -0.00007247
 -0.00035675 -0.00024439 -0.00531239  0.00058866 -0.00014478  0.00109407
 -0.00051563 -0.00247803  0.00094758  0.00000252  0.00089791  0.00017146
  0.00035672  0.00149236 -0.00009858  0.00123997  0.00067532 -0.00355915
  0.00149721 -0.00049745 -0.00187282 -0.00020468  0.0005933   0.00210617
 -0.00113146  0.00371127 -0.00094436 -0.00018885  0.00234949  0.00349563
 -0.0001026  -0.00048805  0.00008292 -0.0805468   0.04791912  0.00739296
  0.00234198 -0.0001346   0.00145571  0.01940135  0.00235614  0.00190916
  0.0003401   0.0000465   0.00681345  0.          0.          0.00416884
  0.00512622 -0.00956324  0.01885831]
Out[146]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f9933a8e780>
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))

Predicting Admin from the Professional Model

In [147]:
%%time

if os.path.isfile(PickleJarPath+"/OPMAnalysisDataNoFamAdminBinary.pkl"):
    print("Found the File! Loading Pickle Now!")
    OPMAnalysisDataNoFamAdminBinary = unpickleObject("OPMAnalysisDataNoFamAdminBinary")
else:

    OPMAnalysisDataNoFamAdminBinary = SampledOPMDataAdmin.copy()

    cols = ["GENDER",
            "DATECODE",
            "QTR",
            "COUNT",
            "AGYTYPT",
            "AGYT",
            "AGYSUB",
            "AGYSUBT",
            "QTR",
            "AGELVLT",
            "LOSLVL",
            "LOSLVLT",
            "LOCTYPT",
            "LOCT",
            "OCCTYP",
            "OCCTYPT",
            "OCCFAM",
            "OCCFAMT",
            "OCC",
            "OCCT",
            "PATCO",
            "PPGRD",
            "PATCOT",
            "PPTYPT",
            "PPGROUPT",
            "PAYPLAN",
            "PAYPLANT",
            "SALLVLT",
            "TOATYPT",
            "TOAT",
            "WSTYP",
            "WSTYPT",
            "WORKSCH",
            "WORKSCHT",
            "SALARY",
            "LOS",
            "SEPCount_EFDATE_OCC",
            "SEPCount_EFDATE_LOC"
           ]



    #delete cols from analysis data
    for col in cols:
        if col in list(OPMAnalysisDataNoFamAdminBinary.columns):
            del OPMAnalysisDataNoFamAdminBinary[col]

    OPMAnalysisDataNoFamAdminBinary.info()

    cols = ["AGELVL",
            "LOC",
            "SALLVL",
            "TOA",
            "AGYTYP",
            "AGY",
            "LOCTYP",
            "PPTYP",
            "PPGROUP",
            "TOATYP"
           ]

    #Split Values for cols 
    for col in cols:
        if col in list(OPMAnalysisDataNoFamAdminBinary.columns):
            AttSplit = pd.get_dummies(OPMAnalysisDataNoFamAdminBinary[col],prefix=col)
            display(AttSplit.head())
            OPMAnalysisDataNoFamAdminBinary = pd.concat((OPMAnalysisDataNoFamAdminBinary,AttSplit),axis=1) # add back into the dataframe
            del OPMAnalysisDataNoFamAdminBinary[col]

    pickleObject(OPMAnalysisDataNoFamAdminBinary, "OPMAnalysisDataNoFamAdminBinary")
        
display(OPMAnalysisDataNoFamAdminBinary.head())
print("Number of Columns: ",len(OPMAnalysisDataNoFamAdminBinary.columns))
OPMAnalysisDataNoFamAdminBinary.info()
Found the File! Loading Pickle Now!
SEP GSEGRD IndAvgSalary SalaryOverUnderIndAvg LowerLimitAge YearsToRetirement BLS_FEDERAL_OtherSep_Rate BLS_FEDERAL_Quits_Rate BLS_FEDERAL_TotalSep_Level BLS_FEDERAL_JobOpenings_Rate BLS_FEDERAL_OtherSep_Level BLS_FEDERAL_Quits_Level BLS_FEDERAL_JobOpenings_Level BLS_FEDERAL_Layoffs_Rate BLS_FEDERAL_Layoffs_Level BLS_FEDERAL_TotalSep_Rate SALARYLog LOSSqrt SEPCount_EFDATE_OCCLog SEPCount_EFDATE_LOCLog IndAvgSalaryLog AGELVL_B AGELVL_C AGELVL_D AGELVL_E AGELVL_F AGELVL_G AGELVL_H AGELVL_I AGELVL_J AGELVL_K LOC_01 LOC_02 LOC_04 LOC_05 LOC_06 LOC_08 LOC_09 LOC_10 LOC_11 LOC_12 LOC_13 LOC_15 LOC_16 LOC_17 LOC_18 LOC_19 LOC_20 LOC_21 LOC_22 LOC_23 LOC_24 LOC_25 LOC_26 LOC_27 LOC_28 LOC_29 LOC_30 LOC_31 LOC_32 LOC_33 LOC_34 LOC_35 LOC_36 LOC_37 LOC_38 LOC_39 LOC_40 LOC_41 LOC_42 LOC_44 LOC_45 LOC_46 LOC_47 LOC_48 LOC_49 LOC_50 LOC_51 LOC_53 LOC_54 LOC_55 LOC_56 TOA_10 TOA_15 TOA_20 TOA_30 TOA_32 TOA_35 TOA_38 TOA_40 TOA_42 TOA_44 TOA_45 TOA_48 LOCTYP_1 PPTYP_1 PPGROUP_11 PPGROUP_12 TOATYP_1 TOATYP_2
0 NS 7.0 42440.609454 -928.609454 20.0 37.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 10.633738 0.316228 4.174387 5.365976 10.655861 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 0 1 0
1 NS 9.0 59811.047401 -373.047401 25.0 32.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 10.992689 2.469818 4.905275 6.265301 10.998946 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0
2 NS 9.0 54720.390255 1115.609745 25.0 32.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 10.930174 1.183216 4.905275 5.117994 10.909992 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0
3 NS 11.0 66557.448029 -5431.448029 25.0 32.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.020693 2.144761 5.627621 6.745236 11.105821 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0
4 NS 11.0 70834.469577 -7743.469577 25.0 32.0 0.4 0.4 34 2.1 10 11 58 0.5 13 1.2 11.052333 1.673320 6.148468 6.827629 11.168101 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0
Number of Columns:  100
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 14918 entries, 0 to 14917
Data columns (total 100 columns):
SEP                              14918 non-null object
GSEGRD                           14918 non-null float64
IndAvgSalary                     14918 non-null float64
SalaryOverUnderIndAvg            14918 non-null float64
LowerLimitAge                    14918 non-null float64
YearsToRetirement                14918 non-null float64
BLS_FEDERAL_OtherSep_Rate        14918 non-null float64
BLS_FEDERAL_Quits_Rate           14918 non-null float64
BLS_FEDERAL_TotalSep_Level       14918 non-null int64
BLS_FEDERAL_JobOpenings_Rate     14918 non-null float64
BLS_FEDERAL_OtherSep_Level       14918 non-null int64
BLS_FEDERAL_Quits_Level          14918 non-null int64
BLS_FEDERAL_JobOpenings_Level    14918 non-null int64
BLS_FEDERAL_Layoffs_Rate         14918 non-null float64
BLS_FEDERAL_Layoffs_Level        14918 non-null int64
BLS_FEDERAL_TotalSep_Rate        14918 non-null float64
SALARYLog                        14918 non-null float64
LOSSqrt                          14918 non-null float64
SEPCount_EFDATE_OCCLog           14918 non-null float64
SEPCount_EFDATE_LOCLog           14918 non-null float64
IndAvgSalaryLog                  14918 non-null float64
AGELVL_B                         14918 non-null uint8
AGELVL_C                         14918 non-null uint8
AGELVL_D                         14918 non-null uint8
AGELVL_E                         14918 non-null uint8
AGELVL_F                         14918 non-null uint8
AGELVL_G                         14918 non-null uint8
AGELVL_H                         14918 non-null uint8
AGELVL_I                         14918 non-null uint8
AGELVL_J                         14918 non-null uint8
AGELVL_K                         14918 non-null uint8
LOC_01                           14918 non-null uint8
LOC_02                           14918 non-null uint8
LOC_04                           14918 non-null uint8
LOC_05                           14918 non-null uint8
LOC_06                           14918 non-null uint8
LOC_08                           14918 non-null uint8
LOC_09                           14918 non-null uint8
LOC_10                           14918 non-null uint8
LOC_11                           14918 non-null uint8
LOC_12                           14918 non-null uint8
LOC_13                           14918 non-null uint8
LOC_15                           14918 non-null uint8
LOC_16                           14918 non-null uint8
LOC_17                           14918 non-null uint8
LOC_18                           14918 non-null uint8
LOC_19                           14918 non-null uint8
LOC_20                           14918 non-null uint8
LOC_21                           14918 non-null uint8
LOC_22                           14918 non-null uint8
LOC_23                           14918 non-null uint8
LOC_24                           14918 non-null uint8
LOC_25                           14918 non-null uint8
LOC_26                           14918 non-null uint8
LOC_27                           14918 non-null uint8
LOC_28                           14918 non-null uint8
LOC_29                           14918 non-null uint8
LOC_30                           14918 non-null uint8
LOC_31                           14918 non-null uint8
LOC_32                           14918 non-null uint8
LOC_33                           14918 non-null uint8
LOC_34                           14918 non-null uint8
LOC_35                           14918 non-null uint8
LOC_36                           14918 non-null uint8
LOC_37                           14918 non-null uint8
LOC_38                           14918 non-null uint8
LOC_39                           14918 non-null uint8
LOC_40                           14918 non-null uint8
LOC_41                           14918 non-null uint8
LOC_42                           14918 non-null uint8
LOC_44                           14918 non-null uint8
LOC_45                           14918 non-null uint8
LOC_46                           14918 non-null uint8
LOC_47                           14918 non-null uint8
LOC_48                           14918 non-null uint8
LOC_49                           14918 non-null uint8
LOC_50                           14918 non-null uint8
LOC_51                           14918 non-null uint8
LOC_53                           14918 non-null uint8
LOC_54                           14918 non-null uint8
LOC_55                           14918 non-null uint8
LOC_56                           14918 non-null uint8
TOA_10                           14918 non-null uint8
TOA_15                           14918 non-null uint8
TOA_20                           14918 non-null uint8
TOA_30                           14918 non-null uint8
TOA_32                           14918 non-null uint8
TOA_35                           14918 non-null uint8
TOA_38                           14918 non-null uint8
TOA_40                           14918 non-null uint8
TOA_42                           14918 non-null uint8
TOA_44                           14918 non-null uint8
TOA_45                           14918 non-null uint8
TOA_48                           14918 non-null uint8
LOCTYP_1                         14918 non-null uint8
PPTYP_1                          14918 non-null uint8
PPGROUP_11                       14918 non-null uint8
PPGROUP_12                       14918 non-null uint8
TOATYP_1                         14918 non-null uint8
TOATYP_2                         14918 non-null uint8
dtypes: float64(15), int64(5), object(1), uint8(79)
memory usage: 3.5+ MB
CPU times: user 97.4 ms, sys: 2.98 ms, total: 100 ms
Wall time: 96.5 ms
In [148]:
if os.path.isfile(PickleJarPath+"/OPMAnalysisScalerFit.pkl"):
    print("Found the File! Loading Pickle Now!")
    OPMAnalysisScalerFit = unpickleObject("OPMAnalysisScalerFit")
Found the File! Loading Pickle Now!
In [149]:
#OPMAnalysisDataNoFamAdminBinary = OPMAnalysisDataNoFamAdmin[(OPMAnalysisDataNoFamAdmin["SEP"] == 'NS') | (OPMAnalysisDataNoFamAdmin["SEP"] == 'SC')].reset_index()
OPMAnalysisDataNoFamAdminBinaryScaled = OPMAnalysisDataNoFamAdminBinary[OPMScaledAnalysisData.columns]

print(OPMAnalysisDataNoFamAdminBinaryScaled.info())
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 14918 entries, 0 to 14917
Data columns (total 99 columns):
GSEGRD                           14918 non-null float64
IndAvgSalary                     14918 non-null float64
SalaryOverUnderIndAvg            14918 non-null float64
LowerLimitAge                    14918 non-null float64
YearsToRetirement                14918 non-null float64
BLS_FEDERAL_OtherSep_Rate        14918 non-null float64
BLS_FEDERAL_Quits_Rate           14918 non-null float64
BLS_FEDERAL_TotalSep_Level       14918 non-null int64
BLS_FEDERAL_JobOpenings_Rate     14918 non-null float64
BLS_FEDERAL_OtherSep_Level       14918 non-null int64
BLS_FEDERAL_Quits_Level          14918 non-null int64
BLS_FEDERAL_JobOpenings_Level    14918 non-null int64
BLS_FEDERAL_Layoffs_Rate         14918 non-null float64
BLS_FEDERAL_Layoffs_Level        14918 non-null int64
BLS_FEDERAL_TotalSep_Rate        14918 non-null float64
SALARYLog                        14918 non-null float64
LOSSqrt                          14918 non-null float64
SEPCount_EFDATE_OCCLog           14918 non-null float64
SEPCount_EFDATE_LOCLog           14918 non-null float64
IndAvgSalaryLog                  14918 non-null float64
AGELVL_B                         14918 non-null uint8
AGELVL_C                         14918 non-null uint8
AGELVL_D                         14918 non-null uint8
AGELVL_E                         14918 non-null uint8
AGELVL_F                         14918 non-null uint8
AGELVL_G                         14918 non-null uint8
AGELVL_H                         14918 non-null uint8
AGELVL_I                         14918 non-null uint8
AGELVL_J                         14918 non-null uint8
AGELVL_K                         14918 non-null uint8
LOC_01                           14918 non-null uint8
LOC_02                           14918 non-null uint8
LOC_04                           14918 non-null uint8
LOC_05                           14918 non-null uint8
LOC_06                           14918 non-null uint8
LOC_08                           14918 non-null uint8
LOC_09                           14918 non-null uint8
LOC_10                           14918 non-null uint8
LOC_11                           14918 non-null uint8
LOC_12                           14918 non-null uint8
LOC_13                           14918 non-null uint8
LOC_15                           14918 non-null uint8
LOC_16                           14918 non-null uint8
LOC_17                           14918 non-null uint8
LOC_18                           14918 non-null uint8
LOC_19                           14918 non-null uint8
LOC_20                           14918 non-null uint8
LOC_21                           14918 non-null uint8
LOC_22                           14918 non-null uint8
LOC_23                           14918 non-null uint8
LOC_24                           14918 non-null uint8
LOC_25                           14918 non-null uint8
LOC_26                           14918 non-null uint8
LOC_27                           14918 non-null uint8
LOC_28                           14918 non-null uint8
LOC_29                           14918 non-null uint8
LOC_30                           14918 non-null uint8
LOC_31                           14918 non-null uint8
LOC_32                           14918 non-null uint8
LOC_33                           14918 non-null uint8
LOC_34                           14918 non-null uint8
LOC_35                           14918 non-null uint8
LOC_36                           14918 non-null uint8
LOC_37                           14918 non-null uint8
LOC_38                           14918 non-null uint8
LOC_39                           14918 non-null uint8
LOC_40                           14918 non-null uint8
LOC_41                           14918 non-null uint8
LOC_42                           14918 non-null uint8
LOC_44                           14918 non-null uint8
LOC_45                           14918 non-null uint8
LOC_46                           14918 non-null uint8
LOC_47                           14918 non-null uint8
LOC_48                           14918 non-null uint8
LOC_49                           14918 non-null uint8
LOC_50                           14918 non-null uint8
LOC_51                           14918 non-null uint8
LOC_53                           14918 non-null uint8
LOC_54                           14918 non-null uint8
LOC_55                           14918 non-null uint8
LOC_56                           14918 non-null uint8
TOA_10                           14918 non-null uint8
TOA_15                           14918 non-null uint8
TOA_20                           14918 non-null uint8
TOA_30                           14918 non-null uint8
TOA_32                           14918 non-null uint8
TOA_35                           14918 non-null uint8
TOA_38                           14918 non-null uint8
TOA_40                           14918 non-null uint8
TOA_42                           14918 non-null uint8
TOA_44                           14918 non-null uint8
TOA_45                           14918 non-null uint8
TOA_48                           14918 non-null uint8
LOCTYP_1                         14918 non-null uint8
PPTYP_1                          14918 non-null uint8
PPGROUP_11                       14918 non-null uint8
PPGROUP_12                       14918 non-null uint8
TOATYP_1                         14918 non-null uint8
TOATYP_2                         14918 non-null uint8
dtypes: float64(15), int64(5), uint8(79)
memory usage: 3.4 MB
None

Predicting Admin with KNN

In [150]:
%%time
OPMAnalysisDataNoFamAdminBinaryScaled = pd.DataFrame(OPMAnalysisScalerFit.transform(OPMAnalysisDataNoFamAdminBinaryScaled), columns = OPMAnalysisDataNoFamAdminBinaryScaled.columns)

print("Overall Accuracy, predicting Admin Binary Separation from Professional Model: ", knn_clf.score(OPMAnalysisDataNoFamAdminBinaryScaled[PCList], np.where(OPMAnalysisDataNoFamAdminBinary["SEP"]=="NS",0,1)))

results = pd.concat([OPMAnalysisDataNoFamAdminBinary, pd.DataFrame({"Prediction": knn_clf.predict(OPMAnalysisDataNoFamAdminBinaryScaled[PCList])})], axis = 1)
results["SEPNum"] = np.where(results["SEP"]=="NS",0,1)
results["PredictTxt"] = np.where(results["Prediction"]==0,"NS","SC")

display(pd.DataFrame({'Cnt' : results.groupby(["SEP"]).size()}).reset_index())
display(pd.DataFrame({'Cnt' : results.groupby(["SEP", "PredictTxt"]).size()}).reset_index())

print("confusion matrix\n{0}\n".format(pd.crosstab(results.PredictTxt, results.SEP, rownames = ['True'], colnames = ['Predicted'], margins = True)))

    # Plot non-normalized confusion matrix
plt.figure()
plot_confusion_matrixBinary(confusion_matrix(results.Prediction, results.SEPNum), 
                      classes   =["NS",  "SC"], 
                      normalize =True,
                      title     ='Confusion matrix, with normalization')
Overall Accuracy, predicting Admin Binary Separation from Professional Model:  0.70746748894
SEP Cnt
0 NS 7495
1 SC 7423
SEP PredictTxt Cnt
0 NS NS 5555
1 NS SC 1940
2 SC NS 2424
3 SC SC 4999
confusion matrix
Predicted    NS    SC    All
True                        
NS         5555  2424   7979
SC         1940  4999   6939
All        7495  7423  14918

Normalized confusion matrix
[[ 0.69620253  0.30379747]
 [ 0.27957919  0.72042081]]
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
CPU times: user 11min 28s, sys: 1.4 s, total: 11min 29s
Wall time: 19.7 s

Predicting Admin with Logistic Regression

In [151]:
%%time

print("Overall Accuracy, predicting Admin Binary Separation from Professional Model: ", lr_clf.score(OPMAnalysisDataNoFamAdminBinaryScaled[fullColumns], np.where(OPMAnalysisDataNoFamAdminBinary["SEP"]=="NS",0,1)))

results = pd.concat([OPMAnalysisDataNoFamAdminBinary, pd.DataFrame({"Prediction": lr_clf.predict(OPMAnalysisDataNoFamAdminBinaryScaled[fullColumns])})], axis = 1)
results["SEPNum"] = np.where(results["SEP"]=="NS",0,1)
results["PredictTxt"] = np.where(results["Prediction"]==0,"NS","SC")

display(pd.DataFrame({'Cnt' : results.groupby(["SEP"]).size()}).reset_index())
display(pd.DataFrame({'Cnt' : results.groupby(["SEP", "PredictTxt"]).size()}).reset_index())

print("confusion matrix\n{0}\n".format(pd.crosstab(results.PredictTxt, results.SEP, rownames = ['True'], colnames = ['Predicted'], margins = True)))

    # Plot non-normalized confusion matrix
plt.figure()
plot_confusion_matrixBinary(confusion_matrix(results.Prediction, results.SEPNum), 
                      classes   =["NS",  "SC"], 
                      normalize =True,
                      title     ='Confusion matrix, with normalization')
Overall Accuracy, predicting Admin Binary Separation from Professional Model:  0.668923448183
SEP Cnt
0 NS 7495
1 SC 7423
SEP PredictTxt Cnt
0 NS NS 6502
1 NS SC 993
2 SC NS 3946
3 SC SC 3477
confusion matrix
Predicted    NS    SC    All
True                        
NS         6502  3946  10448
SC          993  3477   4470
All        7495  7423  14918

Normalized confusion matrix
[[ 0.62232006  0.37767994]
 [ 0.22214765  0.77785235]]
/usr/local/es7/lib/python3.5/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
CPU times: user 982 ms, sys: 4.59 s, total: 5.57 s
Wall time: 369 ms
In [ ]:
 
In [ ]: